我有一个基本的UIView,它的子视图具有visualEffectView。我将visualEffectView的view frame.height设置为80。向ViewController呈现时,我想将其高度重置为120。当前,呈现时,高度最初为120,但随后迅速回切为80。我的ViewController覆盖UIView中设置的框架?我的ViewController中的框架首先被调用,但是后来又从UIView中被调用,从而导致裁剪错误。
HomeController
答案 0 :(得分:0)
尝试移动此代码
visualEffectView.anchor(top: topAnchor, left: leftAnchor, bottom: nil, right: rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 80)
从override func layoutSubviews() {
到override init(frame: CGRect) {
super.init()
之后的
答案 1 :(得分:0)
您可能需要保护条件,如果有约束条件,只需通过。
override func layoutSubviews() {
super.layoutSubviews()
guard visualEffectView.constraintsAffectingLayout(for: .vertical).count == 0 else {return}. // Here
visualEffectView.anchor(top: topAnchor, left: leftAnchor, bottom: nil, right: rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 80)
}