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];
}


好吧。。


你可能感兴趣的:(iOS7)