美文网首页
WMStickyPagecontroller

WMStickyPagecontroller

作者: 小六玩的并不六 | 来源:发表于2019-08-29 09:13 被阅读0次

1.在WMMagicScrollView的KVO回调有scrollView导致的Bug

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

if (object == self) {
            
            //Adjust self scroll offset when scroll down
        if (diff > 0 && _lock) {
               ......
        } else {
            //Adjust the observed scrollview's content offset
            UIScrollView *scrollView = object;
            _lock = (scrollView.contentOffset.y > -scrollView.contentInset.top);
            
            //Manage scroll up
            if (self.contentOffset.y < maximumContentOffsetY && _lock && diff < 0) { //<-这一行
                [self scrollView:scrollView setContentOffset:old];
            }
            //Disable bouncing when scroll down
            if (!_lock && ((self.contentOffset.y > -self.contentInset.top) || self.bounces)) {
                [self scrollView:scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, -scrollView.contentInset.top)];
            }
        }

}

在某些情况下,maximumContentOffsetY的值可能由于scrollView的contentOffset精度问题,实际上并不会触发if (self.contentOffset.y < maximumContentOffsetY && _lock && diff < 0),导致底部没办法联动。

临时的解决办法是改成这样if (self.contentOffset.y < maximumContentOffsetY - 1 && _lock && diff < 0)

相关文章

网友评论

      本文标题:WMStickyPagecontroller

      本文链接:https://www.haomeiwen.com/subject/udayfqtx.html