Objective c UIButton在滚动时没有响应

Objective c UIButton在滚动时没有响应,objective-c,ios,uiscrollview,Objective C,Ios,Uiscrollview,我有一个子视图,其中UIScrollView中添加了一个UIButton 只要用户不滚动,按钮就可以正常工作。 如果用户单击按钮时UIScrollView仍在滚动,它只会停止滚动(就像单击了一行一样) 有人知道如何解决这个问题吗?首先,请确保这确实是您想要的行为-iOS用户习惯于滚动视图并通过触摸停止视图,而无需触发按键。非标准行为(即使你认为它比标准行为更好)可能会让习惯于在其他iOS应用程序中工作的用户感到困惑——它可能会违反他们的习惯。好的,请注意 那么你如何解决这个问题呢UIScroll

我有一个子视图,其中UIScrollView中添加了一个UIButton

只要用户不滚动,按钮就可以正常工作。 如果用户单击按钮时UIScrollView仍在滚动,它只会停止滚动(就像单击了一行一样)


有人知道如何解决这个问题吗?

首先,请确保这确实是您想要的行为-iOS用户习惯于滚动视图并通过触摸停止视图,而无需触发按键。非标准行为(即使你认为它比标准行为更好)可能会让习惯于在其他iOS应用程序中工作的用户感到困惑——它可能会违反他们的习惯。好的,请注意

那么你如何解决这个问题呢
UIScrollView
延迟发送触摸事件,直到它知道这些触摸是否为滚动事件。问题在于,当
UIScrollView
移动时,用户点击是一个滚动事件。两种可能的解决办法:

  • 停止
    UIScrollView
    延迟它获得的任何触摸事件。您可以将任何滚动视图
    delaysContentTouches
    设置为
    NO
    ,这将停止延迟操作,并允许在滚动时点击按钮。你可以在报纸上看到。您还需要阅读那里的
    canCancelContentTouches

  • UIScrollView
    进行子类化,以添加您自己关于触摸事件应该去哪里的逻辑


  • 点击按钮你在做什么?@franknirania正在触发一个方法。当UIScrollView没有滚动并且用户点击时,它会被触发。我猜有人在这里发布了一个类似的问题-为什么不到处看看呢?我猜答案是使用添加到scrollView的手势识别器,或者截取触摸的视图。