0

我有 UIScrollView 和里面的其他 UIView 元素。我的其他 UIView 元素大多是分段控件。如果我单击 UISegmentedControl 并按住一秒钟然后尝试滚动,则不会发生滚动。只有当我的手指触摸并立即滑动时,我才能滚动。我检查了其他 iOS 应用程序,例如邮件。行为是您触摸并按住邮件,然后它被突出显示,但是一旦手指移开,滚动就会发生并且突出显示被撤消。我该如何实现这种行为?

4

2 回答 2

1

问题是 UIScrollView 的属性。属性 canCancelContentTouches 设置为 NO。因此,触摸事件由滚动视图的子视图处理,滑动不会导致滚动。

于 2014-01-28T20:32:34.833 回答
0

您可以按照以下步骤之一进行操作:

  1. 如果您在 UIScrollView 上使用 UISegmentedControl,请在控制器视图上添加 UISegmentedControl。

  2. 如果要在滚动视图上使用 UISegmentedControl,则必须通过创建 UIScrollView 的子类来创建自定义滚动视图,并使用图像视图而不是 UISegmentedControl 添加可以充当段的标签。这是因为您的 UISegmentControl 本身是一个触摸处理程序,它会破坏 UIResponder 链。因此,滚动可能会在触摸事件期间遇到问题。

请让我知道这些是否有效。谢谢 :)

于 2014-01-28T19:26:44.810 回答