【发布时间】:2016-09-07 12:32:58
【问题描述】:
我正在尝试向 xib 添加两个按钮,但两个按钮都没有响应点击。我已经在这里解决了类似的问题,但还没有找到可行的解决方案。
在 xib 中,我有一个背景视图 -> 一个较小的视图 -> 两个并排按钮被同级小视图分开。
按钮是 xib 的最顶层。我已经在所有超级视图和同级视图上启用了 userInteraction 和剪辑子视图。
我在视图的控制器类中设置了一个断点,当视图被初始化时它会被命中。我已经尽可能地简化了课程,但是当我点击任一按钮时,什么都没有发生。此视图位于按预期反应的 tableview 之上。
我提取了 xib 和控制器文件并将它们添加到示例应用程序中。它表现出同样的问题。我已在本文底部附上了该示例应用程序的代码。
这是我用来初始化将 xib 添加到我的 rootVC 的代码:
PageSwitchViewController *pageSwitchViewController = [PageSwitchViewController new];
[pageSwitchViewController.view setFrame:CGRectMake(0, ([UIScreen mainScreen].bounds.size.height - [pageControlHeight integerValue]), [UIScreen mainScreen].bounds.size.width, [pageControlHeight integerValue])];
[self.view addSubview:pageSwitchViewController.view];
【问题讨论】:
-
通常 nib 文件与文件所有者相关联,请尝试将 UIControlEventTouchUpInside 中的操作添加到文件所有者而不是 viewController 场景中。
-
也许这只是另一个问题的征兆呢? nib 的文件所有者与我放置 IBAction 的位置相同。
-
点击 xcode 中的视图调试器按钮,查看按钮所在的视图,该框架是否应大于按钮,并检查其他视图是否未出现在按钮前面
-
按钮位于顶部。我在代码中明确地做到了这一点,并且在视图调试器中已经确认了这一点。按钮确实稍微超出了它们的超级视图的范围,但这仅仅是因为圆角。我确实尝试将超级视图中的按钮缩小到更小的尺寸,但同样的问题是,它们对点击没有反应。
-
分享您的代码以便于发现问题
标签: ios objective-c uibutton autolayout xib