UIScrollView如何判断是向右滚动还是向左滚动
答案:2 悬赏:20
解决时间 2021-04-21 12:09
- 提问者网友:生亦何欢
- 2021-04-20 23:46
UIScrollView如何判断是向右滚动还是向左滚动
最佳答案
- 二级知识专家网友:温柔刺客
- 2021-04-21 00:55
工作需要,需要实现UIScrollView左右拖动加载,
首先设置pageEnable=YES;
然后通过Delegate实现相关方法。
//将要开始拖拽,手指已经放在view上并准备拖动的那一刻
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ //拖动前的起始坐标
startContentOffsetX = scrollView.contentOffset.x;
}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{ //将要停止前的坐标
willEndContentOffsetX = scrollView.contentOffset.x;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
endContentOffsetX = scrollView.contentOffset.x;
if (endContentOffsetX < willEndContentOffsetX && willEndContentOffsetX < startContentOffsetX) { //画面从右往左移动,前一页
} else if (endContentOffsetX > willEndContentOffsetX && willEndContentOffsetX > startContentOffsetX) {//画面从左往右移动,后一页
}
}
如上可判断ScrollView是左移了还是右移了
首先设置pageEnable=YES;
然后通过Delegate实现相关方法。
//将要开始拖拽,手指已经放在view上并准备拖动的那一刻
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ //拖动前的起始坐标
startContentOffsetX = scrollView.contentOffset.x;
}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{ //将要停止前的坐标
willEndContentOffsetX = scrollView.contentOffset.x;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
endContentOffsetX = scrollView.contentOffset.x;
if (endContentOffsetX < willEndContentOffsetX && willEndContentOffsetX < startContentOffsetX) { //画面从右往左移动,前一页
} else if (endContentOffsetX > willEndContentOffsetX && willEndContentOffsetX > startContentOffsetX) {//画面从左往右移动,后一页
}
}
如上可判断ScrollView是左移了还是右移了
全部回答
- 1楼网友:狙击你的心
- 2021-04-21 02:09
有时候我们需要检测当前uiscrollview的滑动方向来做出相应的处理,可以借助uiscrollview的delegate函数来实现,
下面的例子可以检测到uiscrollview当前是向上滑动还是向下滑动:
[cpp] view plaincopyprint?
int _lastposition; //a variable define in headfile
- (void)scrollviewdidscroll:(uiscrollview *)scrollview{
int currentpostion = scrollview.contentoffset.y;
if (currentpostion - _lastposition > 25) {
_lastposition = currentpostion;
nslog(@"scrollup now");
}
else if (_lastposition - currentpostion > 25)
{
_lastposition = currentpostion;
nslog(@"scrolldown now");
}
}
25 可以是任意数字,可根据自己的需要来设定。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯