我有一个 UIButton 添加到 UIScrollView 的子视图。
只要用户不滚动,该按钮就可以正常工作。如果用户单击按钮时 UIScrollView 仍在滚动,它只会停止滚动(就像单击了一行一样)。
有人知道怎么修这个东西吗?
我有一个 UIButton 添加到 UIScrollView 的子视图。
只要用户不滚动,该按钮就可以正常工作。如果用户单击按钮时 UIScrollView 仍在滚动,它只会停止滚动(就像单击了一行一样)。
有人知道怎么修这个东西吗?
首先,确保这确实是您想要的行为 - iOS 用户习惯于滚动视图并通过点击来停止它们而不触发按钮按下。非标准行为(即使你认为它比标准行为更好)可能会让习惯于在其他 iOS 应用程序中工作的用户感到困惑——它可能会违反他们的心理模型。好的,注意事项结束。
那么你如何解决这个问题?UIScrollView
延迟发送触摸事件,直到它知道这些触摸是否是滚动事件。您的问题是用户点击是移动时的滚动事件UIScrollView
。两种可能的解决方案:
停止UIScrollView
延迟它获得的任何触摸事件。您可以将任何滚动视图设置delaysContentTouches
为NO
,这将停止延迟操作,并应允许在滚动时点击您的按钮。UIScrollView
你可以在类文档中阅读它。您还需要阅读canCancelContentTouches
那里的内容。
子类化UIScrollView
以添加您自己的关于触摸事件应该去哪里的逻辑。这是一篇讨论如何执行此操作的博客文章。