[英]window.pageYOffset not working in iOS7
我目前有以下代碼來檢查到達頁面結尾的距離;
var untilPageEnd = $(document).height() - (window.pageYOffset + window.innerHeight);
在iOS7之前的應用程序中,這將完美地運行。 但是,現在在我的iOS7應用window.pageYOffset
返回0,所有的時間。 有沒有任何已知的解決方案?
window.pageYOffset在safari瀏覽器中工作,但不在UIWebView中工作
如果在UIWebView上覆蓋UIScrollViewDelegate?
在iOS7中,您需要像這樣進行修改
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[super scrollViewDidScroll:scrollView];
//TO DO
//code goes here
}
我有同樣的問題,已經放棄了iOS7下的window.pageYOffset - 自從iOS3以來,同樣的代碼對我有用!
我的解決方案:我有一個UIWebView的子類,我使用它來實現
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
方法和我有
CGFloat newOffY = scrollView.contentOffset.y + topLength
從包含UIViewController通過以下方式設置topLength:
CGFloat topLength = 0;
CGFloat bottomLength = 0;
if([self respondsToSelector:@selector(topLayoutGuide)] && !self.isFullScreen) {
topLength = [[self topLayoutGuide] length];
bottomLength = [[self bottomLayoutGuide] length];
}
然后,您可以將newOffY
傳遞回UIWebView,以便在您的javascript中使用。
是的,這是一個黑客,但這就是我現在正在iOS7下工作的方式。 :/
(我的測試已經產生了一個理論,即由於iOS7中新的topLayoutGuide內容或者Apple已經重做了UIWebViews的實現方式,windows.pageYOffset現在被破壞了,你現在正在滾動UIScrollView而不是UIWebView,因此javascript無法檢測到由於滾動發生在較低級別滾動?)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.