有没有办法去激活一个UIScrollView的减速?
我想允许用户滚动画布上,但我不希望这样的帆布继续滚动的用户解除了手指之后。
有没有办法去激活一个UIScrollView的减速?
我想允许用户滚动画布上,但我不希望这样的帆布继续滚动的用户解除了手指之后。
这可以通过利用来完成UIScrollView
委托方法scrollViewWillBeginDecelerating
以自动设置内容偏移到当前屏幕位置。
要实现:
UIScrollView
对象,如果您还没有这样做。 在您委托的.m
实现文件,添加如下代码:
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ [scrollView setContentOffset:scrollView.contentOffset animated:YES]; }
瞧! 没有更多的自动滚动。
对于iOS 5.0或更高版本,还有比调用一个更好的方法setContentOffset:animated:
。
实现委托方法scrollViewWillEndDragging:withVelocity:targetContentOffset:
在您.m
文件:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset {
*targetContentOffset = scrollView.contentOffset;
}
分配电流偏移targetContentOffset
停止UIScrollView
从自动滚动。
你可以只打开了减速率非常高。 具有无限速度,它会立即停止。 尝试将率这些常量:
scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
和
scrollView.decelerationRate = UIScrollViewDecelerationRateFast;
如果增速仍不够快你,UIScrollViewDecelerationRateFast只是Typedef的为float,所以你可以用它乘10个左右的因素,以更加快速度。
就在decelerationRate属性设置为0
这将禁用自动滚动属性。 但是要记住用户的交互会变得糟糕,如果滚动型contentsize大。
以前版本代码:↓
scrollView.decelerationRate = UIScrollView.DecelerationRate.fast
当前版本4.2代码:↓
scrollView.decelerationRate = UIScrollViewDecelerationRateFast