UIScrollView:在scrollViewDidScroll中对contentOffset有了更好的预测:

Ste*_*nin 9 cocoa-touch objective-c uitableview uiscrollview ios

我正在尝试基于UIScrollView代表实现某些功能,scrollViewDidScroll:特别是.所以我scrollView.contentOffset在委托方法中读取它并且它工作得很好,直到我开始滚动得更快,然后contentOffset在Y坐标中跳过最多50个点:

在此输入图像描述

有谁知道如何获得更好的精度contentOffset

dan*_*anh -1

KVO 会提供每次变化的消息,但是你在观察方法中所做的工作应该很快完成,以免引起滞后......

开始观察:

// assuming you have a scroll view outlet property
[self.scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];
Run Code Online (Sandbox Code Playgroud)

观察变化:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
    if (object == self.scrollView) {
        NSLog(@"%f", self.scrollView.contentOffset.y);
    }
}
Run Code Online (Sandbox Code Playgroud)

停止观察:

[self.scrollView removeObserver:self forKeyPath:@"contentOffset"];
Run Code Online (Sandbox Code Playgroud)