是否有可能在UIScrollView中删除UIButton突出显示状态的延迟?

如果在UIScrollView(或表视图)中,我注意到一个UIButton的高亮显示状态稍微延迟。 否则,突出显示的状态几乎是瞬间的。

我猜测这必须通过devise来提供用户滚动的机会。 但是好像button对我没有反应。 有没有办法来解决这个问题?

的确,这是一个deviseselect。 它需要这么短的时间来区分滚动(panGesture)和水龙头。 如果消除这种延迟,那么如果用户将手指放在button的上方,用户将不能滚动,这不是很好的用户体验。

因为滚动视图没有滚动条,所以它必须知道触摸是否意味着滚动的意图,而不是意图跟踪内容中的子视图。 为了做出这个决定,它通过启动一个定时器暂时拦截一个触发事件,在定时器触发之前,看看触摸手指是否有任何移动。 如果定时器在没有显着位置变化的情况下触发,则滚动视图将追踪事件发送到所触摸的内容视图的子视图。

从UIScrollView文档

我不build议禁用这个延迟,但是如果你坚持的话,你可以在界面构build器中设置它(select滚动视图,在右侧面板的“反弹缩放”下面),或者使用下面的代码:

scrollView.delaysContentTouches = false