首页 > 解决方案 > 将 UIView 高度约束设置为 0 后,UIButton 点击​​不注册

问题描述

我正在使用 iOS 自动布局。我有一个 UIView,有时我想根据应用程序中的某些标准隐藏它。因为一切都包含在一个长的 UIScrollView 中,为了“隐藏”/删除这个元素,我只是将 UIView 的高度约束设置为 0,这应该向上移动它下面的所有元素。

viewHeightConstraint.constant = 0
viewHeightConstraint.layoutIfNeeded()

viewHeightConstraint变量引用了一个 NSLayoutConstraint,我 Ctrl+Dragged 以从情节提要的代码中获取一个出口。

在此处输入图像描述

我说的 UIView 就是上图中的灰色框。在将此 UIView 的高度设置为 0 并更新视图后,它确实消失了,并且一切都按原样向上移动。

但是,最初起作用的两个蓝色 UIButton 在此自动布局更改后不会注册任何点击。我正在设置self.view.translatesAutoresizingMaskIntoConstraints = true其中viewDidLoad()没有修复它。

编辑:问题出在我的视图层次结构中。

标签: iosswiftautolayout

解决方案


改为添加此代码:

self.view.translatesAutoresizingMaskIntoConstraints = true

另外,尝试添加:

self.grayView.clipToBounds = true

推荐阅读