【发布时间】:2020-04-15 11:04:28
【问题描述】:
我对旧应用上的按钮单击事件有疑问。对于 iOS 版本
这是生成按钮的代码:
override func layoutSubviews() {
super.layoutSubviews()
var offsetY = CGFloat(0)
for view in authenticationViews {
view.button.frame = CGRect(x: 0, y: offsetY, width: frame.size.width, height: buttonHeight)
offsetY += buttonsDistance + buttonHeight
addSubview(view.button)
}
height = offsetY
}
我认为约束可能存在问题,但我是 iOS 新手,我不知道应该从这个错误中理解什么以及应该如何修复:
将尝试通过打破约束来恢复 (null) ((null), (null))
【问题讨论】:
-
您可以做的是使用可视化调试器在运行时检查生成的约束。此外,可以避免在
layoutSubviews中添加子视图,因为可以多次调用该方法。最后,您还可以在操作方法处设置断点,以确保问题确实是您怀疑的问题(顺便说一句,您如何添加目标/操作?) -
目标操作在哪里?也分享截图
-
您可以使用Snapkit 或任何其他方式轻松进行约束。我想你需要像这样制作约束:
view.button.snp.makeConstraints { make in make.width.equalTo(frame.size.width) make.height.equalTo(buttonHeight) }