防止uiscrollview向右滚动
Posted
技术标签:
【中文标题】防止uiscrollview向右滚动【英文标题】:Prevent right scrolling of uiscrollview 【发布时间】:2014-10-23 17:31:51 【问题描述】:我有一个可以水平滚动的 UIScrollView。但是,我希望在满足特定条件之前禁用右滚动。实现这一目标的最简洁方法是什么?
谢谢!
【问题讨论】:
【参考方案1】:在您的 UIScrollView
委托中实现 scrollViewDidScroll
。
- (void)scrollViewDidScroll:(UIScrollView *)scrollview
CGPoint contentOffset = scrollview.contentOffset;
if (!yourCondition && contentOffset.x > 0)
contentOffset.x = 0;
scrollview.contentOffset = contentOffset;
或者,您可以添加一个观察者 forKeyPath:@"bounds" options:NSKeyValueObservingOptionNew
并在那里处理 UIScrollView
边界更改。
您还可以添加:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollview withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
if (!yourCondition && targetContentOffset->x > 0)
targetContentOffset->x = 0;
【讨论】:
这行得通,但是当达到偏移限制时,我有时会在相反的方向上出现轻微的“反弹”。尤其是当我在屏幕上滑动垃圾时会发生这种情况。我认为这与减速值有关。 您可以按照我编辑答案的方式停止减速。以上是关于防止uiscrollview向右滚动的主要内容,如果未能解决你的问题,请参考以下文章
UIScroll 视图 + UIView + UITableview 问题
调整容器 uiscrollview 中所有 uiscrollview 的大小