点击时UIButton不会获得事件

时间:2014-04-10 12:06:40

标签: ios uibutton interface-builder container-view

我的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>>
)

2 个答案:

答案 0 :(得分:0)

我是对的,这是愚蠢的。在所有人的评论之后,我检查了容器,并且我没有设置任何自动布局约束。根据我的经验,这意味着它将为它的框架创建全零。一旦我添加了这些约束,一切都恢复正常。

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

答案 1 :(得分:0)

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