Ios 空视图导致高度/位置不明确
我有两个视图,一个Ios 空视图导致高度/位置不明确,ios,autolayout,ios10,uistackview,Ios,Autolayout,Ios10,Uistackview,我有两个视图,一个UIView和一个UIStackView let mainView = UIView() mainView.translatesAutoresizingMaskIntoConstraints = false let stackView = UIStackView() stackView.axis = .vertical stackView.translatesAutoresizingMaskIntoConstraints = false 它们都使用这些约束添加到superV
UIView
和一个UIStackView
let mainView = UIView()
mainView.translatesAutoresizingMaskIntoConstraints = false
let stackView = UIStackView()
stackView.axis = .vertical
stackView.translatesAutoresizingMaskIntoConstraints = false
它们都使用这些约束添加到superView
NSLayoutConstraint.activate([
mainView.topAnchor.constraint(equalTo: view.topAnchor),
mainView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
mainView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
stackView.topAnchor.constraint(equalTo: mainView.bottomAnchor),
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
当UIView
和UIStackView
都不包含任何其他视图时,我在debugger
uiview的高度不明确
高度和垂直位置对于视图不明确
但是,如果我将ui按钮添加到UIStackView
,然后使用将其设置为hidden。ishiden=true
,这两个警告都会消失,除了iOS10
中的两个警告都会保留
无论是否有调试器警告
我都会得到我想要的结果,即如果UIStackView
为空(或所有子视图
隐藏),则UIView
会覆盖整个屏幕
这里发生了什么,为什么一个隐藏视图与一个空的stackView不同,为什么在iOS10
上的行为不同?最后但并非最不重要的一点是,我如何在不影响当前布局的情况下满足iOS10,这似乎适用于iOS10之后的所有内容?以下是您得到的-mainView
和stackView
没有高度,边缘被剪裁。
无法根据该约束计算垂直位置和高度。您可以在任一视图上添加一些高度约束,以明确自动布局
mainView.heightAnchor.constraint(greaterThanOrEqualToConstant: 1)
尝试将按钮alpha设置为0,而不是隐藏按钮。@DavidH这在某种程度上起作用,我没有收到任何调试器警告/冲突,但stackview始终具有按钮的高度,如果所有按钮都隐藏,我希望其他视图拉伸到superview的全高添加填充视图-我刚刚这样做了。给它大小上的限制。如果不需要按钮,请删除它们,然后将填充视图上的约束设置为所需的约束。您可以将填充视图保留在堆栈视图中,也可以添加和删除它。@DavidH添加填充视图,并将其设置为heightConstraint
到equalToConstant:0
实际上会删除调试器警告,谢谢!(仍然认为它工作起来非常奇怪…)没有工作,仍然有相同的警告(尝试将此添加到两个视图)