【问题标题】:UIControl Touch Down event not working when containing UIScrollViewUIControl Touch Down 事件在包含 UIScrollView 时不起作用
【发布时间】:2011-10-21 12:42:33
【问题描述】:

UIView 包含 UIScrollView,其中包含我所有的 UITextFields。当键盘出现时,除了单击“完成”按钮之外,当我单击键盘外部视图中的某个位置时,我希望键盘也消失。我将 UIView 更改为 UIControl 并处理“Touch Down”事件。什么都没发生。是因为它包含滚动视图吗?

【问题讨论】:

    标签: iphone ios4 ios-simulator


    【解决方案1】:

    最简单的方法是在界面生成器中创建一个 alpha 为 0.0f 并覆盖整个屏幕的 UIButton。当你说 [textField becomeFirstResponder] 时,说 exitButton.hidden = FALSE;

    然后创建一个链接到关闭键盘的按钮 ([textField resignFirstResponder]) 的 IBAction,并再次隐藏该按钮。

    这样,您就有了一个不可见但可点击的按钮,当您在键盘外敲击时,它会在打字时阻挡其他视图并隐藏键盘,而不必弄乱 touchesBegan。

    作为旁注,您的触摸开始不起作用的原因是因为仅当 ios 确定您的视图控制器是触摸所在的最低视图时才会处理触摸。由于触摸在您的滚动视图中,滚动视图处理触摸,而不是您的视图控制器。

    【讨论】:

    • 这会使滚动视图无法正常运行。用户必须点击两次才能正常操作。第一次点击使按钮出现。第二次点击进入滚动视图。所以这个解决方案是一种解决方法,但会破坏滚动视图的目的。
    【解决方案2】:

    如果您的文本字段在滚动视图中,则取消选中滚动视图的检查属性中的延迟内容触摸。那么它应该可以工作了。

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多