Можно ли различить пользовательскую прокрутку и программную прокрутку? - PullRequest
0 голосов
/ 16 апреля 2019

Я поместил событие прокрутки на 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 Ответ

1 голос
/ 16 апреля 2019

Если вы прокручиваете код, вы сразу получаете метод делегата сразу же после него, поэтому легко поднять флаг Bool перед прокруткой кода и обнаружить его в методе делегата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...