可以区分用户滚动和程序滚动吗?

时间:2019-04-16 02:58:16

标签: ios swift uiscrollview

我在scrollViewDidScroll上添加了滚动事件。 但是当用户滚动时, 使用setContentOffSet时也可以使用。 我想让它仅在用户滚动时起作用。

func scrollViewDidScroll(_ scrollView: UIScrollView) {
            if (self.lastContentOffset > scrollView.contentOffset.y) {
                let contentSize = scrollView.contentSize.height
                let tableSize = scrollView.frame.size.height - scrollView.contentInset.top - scrollView.contentInset.bottom
                let canLoadFromBottom = contentSize > tableSize
                // Offset
                let currentOffset = scrollView.contentOffset.y
                let maximumOffset = scrollView.contentSize.height - scrollView.frame.size.height
                let difference = maximumOffset - currentOffset
                if canLoadFromBottom, difference <= -85.0{
                    loadMore()
                }
            self.lastContentOffset = scrollView.contentOffset.y
    }

1 个答案:

答案 0 :(得分:1)

如果滚动代码,则在此之后立即收到一次委托方法,因此在滚动代码之前很容易引发Bool标志并在委托方法中检测到它。