【问题标题】:UIButton Not Getting Event When Tapped轻按时 UIButton 未收到事件
【发布时间】:2014-05-24 03:08:28
【问题描述】:

我的 iOS 7 应用有一个 UIViewController,上面有一个 UIMapView。它还有一个带有 UIButton 的小视图,当用户将地图拖到当前搜索区域之外时,它会显示在地图上。显示时,用户可以点击按钮搜索当前地图中心周围更多的POI。

我在 iAd Suite 示例代码中使用 Apple 的 BannerViewController,因此我可以在多个视图中显示一个广告横幅。这需要我将视图控制器嵌入容器中,以便 BannerViewController 可以显示/隐藏广告。现在,当显示带有按钮的小视图时,触摸按钮不会像以前那样触发 Touch Up Inside 事件。

我正在使用 Interface Builder 并检查了视图层次结构中的所有视图,并且它们都启用了用户交互。以下是 IB 中的视图层次结构:

我知道这可能是我没有想到的愚蠢的事情,但我已经研究了太久,需要一些帮助。

提前致谢。

更新 #1

我从小视图中删除了 UIButton 并用点击手势识别器替换它,但仍然没有。视图本身似乎没有收到任何触摸事件。

更新 #2

使用bringSubviewToFront 将按钮置于最前面没有帮助。

更新 #3

这里是容器视图控制器的子视图列表:

<__NSArrayM 0x17c74ea0>(
<MKMapView: 0x15ddfe40; frame = (0 0; 320 367); clipsToBounds = YES; autoresize = TM+BM; layer = <CALayer: 0x15de1e90>>,
<UIView: 0x17c00030; frame = (0 317; 320 50); alpha = 0; autoresize = TM+BM; layer = <CALayer: 0x15d42dc0>>,
<_UILayoutGuide: 0x17c000f0; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x17c75400>>,
<_UILayoutGuide: 0x17c00160; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x17c751d0>>
)

【问题讨论】:

  • 也许按钮没有附加动作?
  • 确实如此。从它工作的时候开始,这并没有改变。无论如何感谢您的回复。
  • 您是否在任何视图中添加了手势?
  • 也检查了。故事板或代码中没有手势识别器。
  • 按钮是否在其父视图的范围内?

标签: ios uibutton interface-builder container-view


【解决方案1】:

如果您正在尝试使用 iOS 模拟器。请退出 iOS 模拟器并再次运行您的应用程序,如果您的代码中的所有内容都正确无误 .

【讨论】:

    【解决方案2】:

    我是对的,这是愚蠢的。在所有每个人的 cmets 之后,我检查了容器并且我没有对其设置自动布局约束。根据我的经验,这意味着它将为其框架创建全零。一旦我添加了这些约束,一切又开始正常工作了。

    感谢所有帮助我追踪此事的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 2017-03-20
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多