ios - 添加了自动布局的 UIView 不接收点击/事件

标签 ios objective-c autolayout uigesturerecognizer

当我通过设置其左、右、上和高度约束来添加具有自动布局的 subview 时,我无法添加点击手势并且我的按钮不接收点击。

当我手动将框架设置到我需要的位置并且不使用自动布局时,我可以添加手势识别器并且我的按钮是交互式的。

为什么添加了自动布局的 View 不响应事件?

我想使用自动布局,因为我想响应不同的方向和尺寸,这些比我想处理的手动框架调整更复杂。

最佳答案

如果您使用自动布局过多地限制了您的 View ,就会发生这种情况。例如,您可能不小心将 View 的高度设置为零或将其放置在您放置按钮的区域之外。请注意,按钮本身可以放置在您查看它们时看起来正确的位置,但它们实际上位于自动布局引擎为父 View 计算的区域之外。

另一件可能打击您的事情是,如果您以编程方式添加所有自动布局约束,Interface Builder 中的某些约束可能仍会启用。您可以通过设置 view.translatesAutoresizingMaskIntoConstraints = NO;

来确保忽略 IB 约束

另外,请注意控制台窗口中的任何运行时自动布局警告,它们通常会告诉您某些约束是否不能很好地协同工作。

关于ios - 添加了自动布局的 UIView 不接收点击/事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26954189/

相关文章:

ios - UIImageView 忽略宽度/高度约束

ios - iOS6 中的手势识别器和自动布局,从中心开始缩放

php - iOS 推送通知本地化不起作用

ios - 如何使用 Image Sets 为不同设备设置 Viewcontroller 背景图片?

objective-c - 如何在自定义 View 中禁用用户交互

objective-c - 多个 CALayers 动画 - 填充模式

ios - 如何知道当前的尺码等级以及我的按钮是否显示?

swift - 在 iOS 8 中动态更改 ScrollViews subview

ios - 如何将 Youtube 视频嵌入到我的应用程序中?

iphone - UIImageView 仅间歇性显示