如果UIButton位于UIScrollView(或表格视图)中,我会注意到UIButton突出显示的状态稍有延迟。否则,突出显示的状态几乎是瞬间的。
我猜测这必须通过设计来为用户提供滚动的机会。但似乎按钮对我没有反应。有办法解决这个问题吗?
答案 0 :(得分:59)
确实,这是一个设计选择。需要这么短的时间来区分滚动(panGesture)和水龙头。如果你消除了这个延迟,那么用户将手指放在按钮顶部时将无法滚动,这不是很好的用户体验。
来自UIScrollView Documentation 的因为滚动视图没有滚动条,所以它必须知道触摸是否表示要滚动的意图与跟踪内容中的子视图的意图。为了做出这种确定,它通过启动计时器暂时拦截触碰事件,并且在计时器触发之前,查看触摸手指是否进行任何移动。如果计时器在没有显着位置变化的情况下触发,则滚动视图会将跟踪事件发送到内容视图的触摸子视图。
我不建议禁用延迟,但是如果你坚持,你可以在界面构建器中设置它(选择滚动视图,在右侧面板上,在“Bounces Zoom”下面)或使用此代码:< / p>
scrollView.delaysContentTouches = false