我有两组按钮。
它们应该具有不同屏幕尺寸的圆形。
所以我写道:
override func layoutSubviews() {
submitButton.layer.cornerRadius = updateButton.bounds.size.height / 2
cancelButton.layer.cornerRadius = cancelButton.bounds.size.height / 2
}
这适用于imageBelow
然而,当我在之前或之后添加super.layoutSubviews()
时,它只会给出这样的非舍入式:
仅供参考这两个按钮位于水平stackView
内。
然后我有另一个屏幕,如果我不添加super.layoutSubviews()
,那么该按钮将没有圆形的部分。
FYI此按钮不在stackView
内。它有top,bottom和centerX约束。
所以基本上在一个视图中使用super.layoutSubviews()
将帮助您创建圆形的视图,在另一个视图中它会阻碍它!!
这些按钮的设置为:
btn.clipsToBounds = true
btn.layer.borderWidth = 1.0
btn.layer.borderColor = Constants.Color.CoolBlue.color().cgColor
btn.contentEdgeInsets.top = 15
btn.contentEdgeInsets.bottom = 10
btn.translatesAutoresizingMaskIntoConstraints = false
这是因为stackViews还是别的什么?为什么表现得像这样?
我已经阅读了What is the correct way to call [super layoutSubviews]?,并尝试在我的代码之前和之后编写super.layoutSubviews()
,但这没有帮助。