停止UIScrollView的减速

18

如何立即停止iPhone 3.0中UIScrollView的减速?

我希望保持UIScrollView的减速状态,直到它自然停止或用户执行某个特定操作,以先发生者为准。

谢谢!


你好,你确定想要这样做吗?这种应用程序行为肯定会被苹果拒绝。 - Henrik P. Hessel
你的意思是当用户滑动滚动视图并且它正在滚动时,你想要停止视图滚动以响应其他操作,就像用户放下手指停止滚动一样? - Nimrod
Henrik:是的,它在我需要的上下文中不应该引起拒绝。 - hpique
尼姆罗德:是的。基本上我想在用户按下使界面改变的按钮时停止减速。 - hpique
1个回答

16

未经验证的建议如下:)

当捕获到按钮点击事件时,读取 [scrollView contentOffset].x 的值,并将偏移量设置为该值,同时关闭动画效果。


它能够正常工作,看起来也不是一种hack的方式。然而,由于某些未知原因,它使滚动指示器在错误的位置闪烁。以下代码停止了减速,并避免了上述视觉效果:myScrollView.showsHorizontalScrollIndicator = NO; myScrollView.showsVerticalScrollIndicator = NO; [myScrollView setContentOffset:myScrollView.contentOffset animated:NO]; myScrollView.showsHorizontalScrollIndicator = YES; myScrollView.showsVerticalScrollIndicator = YES;丑陋的代码。 - hpique
太好了,它起作用了:) “滚动指示器在错误的位置闪烁”是指滚动条不在正确的右侧和底部吗? 我猜你使用了[scrollView setPagingEnabled:YES]; 这可能会让scrollView有点困惑。ScrollView:“设置说滚动到下一页并在坐标x和y处绘制滚动条” 你:“停下你正在做的事情,自己找出应该在哪里绘制滚动条!”。我刚刚做了类似的事情,我创建了一个每80像素捕捉一次的scrollView,但我使用了animation:YES,这可能给它更多时间来调整。 - RickiG
3
在iOS 4.2中,[scrollView setContentOffset:offset animated:NO] 对我起了作用。 - Josh Brown

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接