Отключить scrollViewDidScroll: при прокрутке UICollectionView - iOS - PullRequest
0 голосов
/ 27 сентября 2018

Я реализовал scrollViewDidScroll: внутри моего viewcontroller, чтобы вызвать некоторые анимации, когда я прокручиваю вид вверх и вниз.

Однако, когда я прокручиваю свое коллекционное представление внутри viewcontroller (по горизонтали), оно портится с моей анимацией внутри scrollViewDidScroll:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    newAlpha = 1 - scrollView.contentOffset.y / 200;
    self.introImageView.alpha = newAlpha;
    //... -> prevent scrolling when collectionview is scrolled
}

Как предотвратить вызов scrollViewDidScroll: при прокрутке моего коллекционного просмотра по горизонтали?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if ([scrollView isKindOfClass:[UICollectionView class]] == NO) {
        newAlpha = 1 - scrollView.contentOffset.y / 200;
        self.introImageView.alpha = newAlpha;
        //... -> prevent scrolling when collectionview is scrolled
    }
}
0 голосов
/ 27 сентября 2018

Лучший способ - не отключать метод делегата, а вызывать этот код только тогда, когда он вызывается вашим scrollview.Вот пример

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == self.myScrollView) {
        newAlpha = 1 - scrollView.contentOffset.y / 200;
        self.introImageView.alpha = newAlpha;
    } else {
       //collectionView would fall here
    }

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