经常会用到scrollView 判断左右滑动还是上下滑动,判断的方法如下
float lastContentOffset;
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
lastContentOffset = scrollView.contentOffset.y;
}
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
if (lastContentOffset < scrollView.contentOffset.y) {
NSlog(@"向上滚动");
}else{
NSlog(@"向下滚动");
}
}
同样的左右滑动也可以判断scrollView.contentOffset.x
开发中遇到tableview 商品上下拉的时候,右下角有个置顶按钮,顺带变化滑动到哪一个商品的需求,这时候需要scrollview 来解决这个问题
首页要获取获取到 topview 在view 上位置,然后转化为tableview 上的cell的位置,代码如下
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
// 将topview在控制器view的右下角转化成collectionView上的坐标
CGPoint pInView = [self.view convertPoint:CGPointMake(topView.x, topView.y+40) toView:_collectionView];
// 获取这一点的indexPath
NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:pInView];
这样就获取到当前位置在top在当前cell的位置;
}