【问题标题】:Touch on UITextField inside UIScrollView prevents scrolling触摸 UIScrollView 内的 UITextField 可防止滚动
【发布时间】:2013-06-08 13:26:24
【问题描述】:

我在UIScrollView 内有一堆UITextFields,当用户尝试向上或向下滚动时,如果初始触摸发生在UITextField 内,该文本字段将成为第一响应者(在 touch down inside 事件上)并防止滚动。有没有办法告诉UITextField 只在内部事件的润色时开始编辑?

【问题讨论】:

  • 你有没有找到解决这个问题的方法?
  • 请查看我在here发布的答案。

标签: ios uiscrollview uikit uitextfield


【解决方案1】:

你应该继承 UIScrollView 并尝试不同的东西覆盖touchesShouldCancelInContentView:。如果您返回 YES,那么它应该始终滚动,但您将永远无法编辑文本字段。如果在触摸超出文本字段时返回 YES,它可能会起作用。可能需要一些技巧才能弄清楚,因为触摸对象没有发送到touchesShouldCancelInContentView。您可能需要在其他点捕获触摸对象并设置一个属性,表明它已超出文本字段。

【讨论】:

    【解决方案2】:

    您可以尝试将滚动视图的 delaysContentTouches 属性设置为 NO。

    【讨论】:

      【解决方案3】:
      scrollView.delaysContentTouches = true
      

      【讨论】:

        猜你喜欢
        • 2011-06-22
        • 2011-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 2013-10-01
        • 1970-01-01
        相关资源
        最近更新 更多