繁体   English   中英

点击时UIButton不会获得事件

[英]UIButton Not Getting Event When Tapped

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

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

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

BannerViewController的MapViewController

我知道这可能是我没想到的愚蠢的东西,但我一直在看它太久而且需要一些帮助。

提前致谢。

更新#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模拟器。请退出iOS模拟器并再次运行您的应用程序,如果您的代码中的所有内容都在那里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM