滚动视图在触摸并按住然后滑动时不滚动
Posted
技术标签:
【中文标题】滚动视图在触摸并按住然后滑动时不滚动【英文标题】:Scroll View doesn't scroll when touching and holding then swiping 【发布时间】:2014-01-28 16:47:39 【问题描述】:我有 UIScrollView 和里面的其他 UIView 元素。我的其他 UIView 元素大多是分段控件。如果我单击 UISegmentedControl 并按住一秒钟然后尝试滚动,则不会发生滚动。只有当我的手指触摸并立即滑动时,我才能滚动。我检查了其他 ios 应用程序,例如邮件。行为是您触摸并按住邮件,然后它被突出显示,但是一旦手指移开,滚动就会发生并且突出显示被撤消。如何实现此行为?
【问题讨论】:
如果你在滚动视图上添加了分段控制,你可以在控制器的视图上添加它。它应该可以工作。 【参考方案1】:问题是 UIScrollView 的属性。属性 canCancelContentTouches 设置为 NO。因此,触摸事件由滚动视图的子视图处理,滑动不会导致滚动。
【讨论】:
【参考方案2】:您可以按照以下步骤之一进行操作:
如果您在 UIScrollView 上使用 UISegmentedControl,请在控制器视图上添加 UISegmentedControl。
如果你想在你的滚动视图上使用 UISegmentedControl,那么你必须通过创建 UIScrollView 的子类来创建自定义滚动视图,并使用图像视图而不是 UISegmentedControl 添加可以充当段的标签。这是因为您的 UISegmentControl 本身就是一个触摸处理程序,它会破坏 UIResponder 链。因此,在触摸事件期间滚动可能会遇到问题。
请让我知道这些是否有效。谢谢:)
【讨论】:
我忘了说我已经有一个控制器,我将分段控件添加到控制器的视图中。以上是关于滚动视图在触摸并按住然后滑动时不滚动的主要内容,如果未能解决你的问题,请参考以下文章