触摸并按住然后滑动时,滚动视图不会滚动

时间:2014-01-28 16:47:39

标签: ios uiscrollview uisegmentedcontrol uiview-hierarchy

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

2 个答案:

答案 0 :(得分:0)

您可以执行以下步骤之一:

  1. 如果你在UIScrollView上使用UISegmentedControl,而不是在你的控制器视图上添加UISegmentedControl。

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

  3. 如果其中任何一项有效,请告诉我。谢谢:))

答案 1 :(得分:0)

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