【问题标题】:UIGestureRecogniser in UICollectionViewUICollectionView 中的 UIGestureRecognizer
【发布时间】:2015-05-23 21:48:11
【问题描述】:
我的应用中有一个UICollectionView,底部有一个包含图像的页脚。我想让它滚动到UICollectionView 的底部,然后如果您进一步向下滑动,它会滚动到页脚图像下方到UIScrollView。显然你可以向上和向下滚动UIScrollView,一旦你在顶部,你可以向上滑动,它会再次跳到页脚图像上方。
我假设我必须使用UIGestureRecogniser 来检测向上滑动,然后添加一个 if 语句来检查用户当前是否位于集合视图的底部?
希望我已经充分解释了这一点。如果有人能提供一些示例代码,我将不胜感激!
谢谢。
【问题讨论】:
标签:
ios
uiscrollview
uicollectionview
uigesturerecognizer
【解决方案1】:
我不明白.. 您在集合视图的页脚中有带有图像的滚动视图吗?反正不需要使用手势识别器,查看-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