【about window.pageYOffset,document.body.scrollTop not working in iOS 7】
最近在升级应用支持iOS7时,发现了一个长期以来都存在的bug。
针对UIWebView 内部实现的UIScrollViewDelegate委托,我们在开发过程中,经常会直接继承UIWebView,并且OverWrite 他的UIScrollViewDelegate。
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//TODO
}
这样的写法在使用iOS6 SDK 以及iOS6 以下编译都没有出现过问题。但是最近在使用iOS7 SDK编译后,发现在UIWebView脚本调用的时候,window.pageYOffset,document.body.scrollTop 等属性失效,刚开始一直认为是iOS7 是不是针对UIWebView 的 Safari做了什么特殊处理,后来还google了好长一段时间,还发现了一些跟我出现相同问题的coder。
http://stackoverflow.com/questions/19001892/window-pageyoffset-not-working-in-ios7
某些时候,我还一直以为是iOS7的bug。后来分析了线上的几款应用,发现别人是正常的。XX。。那肯定是应用本身的问题。
后来当把注意力转移到UIWebView本身时候,才发现,在开发过程中,经常的去继承,但是并没有注意到父类本身委托的实现。
该bug的解决,只需要。。
#pragma mark - UIScrollViewDelegate- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[super scrollViewDidScroll:scrollView];
}
好吧。。