UIColureView中的UIGestureRecogniser

时间:2015-05-23 21:48:12

标签: ios uiscrollview uicollectionview uigesturerecognizer

我的应用中有一个UICollectionView,底部有一个包含图片的页脚。我想这样做,以便您可以滚动到UICollectionView的底部,然后如果再进行一次向下滑动,它会滚动到页脚图像下方的UIScrollView。显然你可以向上和向下滚动UIScrollView,一旦你在顶部,你可以向上滑动,它会再次跳到页脚图像上方。

我假设我必须使用UIGestureRecogniser检测向上滑动,然后添加if语句以检查用户当前是否在集合视图的底部?

希望我已经解释得这么好了。如果有人可以提供一些示例代码,我会非常感激!

感谢。

1 个答案:

答案 0 :(得分:0)

我不明白..你是否在收藏视图的页脚中有一个带图像的滚动视图?无论如何不需要使用手势识别器,请检查-scrollViewDidEndDragging: willDecelerate:

typedef NS_ENUM(NSUInteger, ScrollDirection) {
    ScrollDirectionDown,
    ScrollDirectionUp
};

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIScrollView *scrollWithImageView;

@property (nonatomic) double lastContentOffset;
@property (nonatomic) ScrollDirection scrollDirection;

@end

@implementation ViewController

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    if (decelerate && scrollView == self.scrollWithImageView) {
        if (self.scrollDirection == ScrollDirectionDown) {
           // swipe down
        }
        else {
           // swipe up
        }
    }
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == self.scrollWithImageView) {
        // scroll direction
        if (self.lastContentOffset < scrollView.contentOffset.y) {
            self.scrollDirection = ScrollDirectionDown;
        }
        else if (self.lastContentOffset > scrollView.contentOffset.y) {
            self.scrollDirection = ScrollDirectionUp;
        }

        self.lastContentOffset = scrollView.contentOffset.y;
    }
}

@end