ios - 将 UIView 高度约束设置为 0 后,UIButton 点击​​不注册

标签 ios swift autolayout

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

viewHeightConstraint.constant = 0
viewHeightConstraint.layoutIfNeeded()

viewHeightConstraint 变量指的是一个 NSLayoutConstraint,我按住 Ctrl 键并拖动以从 Storyboard 中获取代码中的导出。

enter image description here

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

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

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

最佳答案

改为添加此代码:

self.view.translatesAutoresizingMaskIntoConstraints = true

此外,尝试添加:

self.grayView.clipToBounds = true

关于ios - 将 UIView 高度约束设置为 0 后,UIButton 点击​​不注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53619414/

相关文章:

ios - Swift:在 AppDelegate 中设置标签文本

swift - 为整个项目定义一个类型别名

ios - Nest iOS App 如何获取 SSID 列表

iOS Core Plot CPTAxisLabel 与 CPTPlot 对齐

ios - 预填充 RestKit 缓存

使用 Codable 的 Swift Rest API 调用示例

ios - 如何在后台线程中准备UI?

ios - uitableview 之前 View 的动态 UILabel 大小

ios - UITableViewCell 中的 UILabel 约束横向变化

iphone - 即使使用自动布局,在 4 英寸屏幕上创建的布局在 3.5 英寸屏幕上也会变得困惑