我有一个这样配置的UIScrollView:
canCancelContentTouches:YES
delaysContentTouches:NO在UIScrollView中,我有几个UIButtons (想想缩略图)。如果我点击一个按钮,就会检测到触摸,如果我随后开始滚动,UIButton上的触摸就会像预期的那样取消。
我遇到的问题是,如果我给UIScrollView一个很好的摆动,我通过简单地触摸UIScrollView来停止滚动,一旦我触摸UIButton,它将在按住按钮大约1秒后收到touchesCancelled,直到我重新滚动UIScrollView
问题似乎来自于UIScrollView仍然认为它被拖拽了(这是错误的,因为我还没有在我的最后一次触摸时移动)。
奇怪的是,如果我通过[UIScrollView setBounces:false]禁用弹跳,这个问题就不存在了。但我显然失去了反弹,这是有问题的。
我尝试了很多方法,比如禁用/重新启用scrollview,它的手势识别器。我已经没有点子了。
发布于 2015-01-28 10:03:37
你可以在这里做什么当uibutton接收到触摸开始你可以设置uiscrollview的内容大小等于uiscrollview的superview大小。
当uibutton接收到touch end时,你可以将uiscrollview的内容大小设置回原来的大小。
通过设置uiscrollview内容大小等于uiscrollview superview大小,它将不允许uiscrollview内容移动。
https://stackoverflow.com/questions/28182249
复制相似问题