我为UIButton
创建了一个自定义类,但在小屏幕设备中,例如iPhone 5s
cornerRadius
无法正常工作
您必须更加仔细地观察UiButton
的{{1}}并没有完美地舍入
cornerRadius
答案 0 :(得分:5)
在EXEC(@Sql)
中设置Col1 Col2 Col3
Val1 Val2 Val3
Value1 Value2 Value1
Val A val B Val A
Value A Value B Value C
太早了。请改用cornerRadius
:
awakeFromNib
答案 1 :(得分:0)
尝试
override func layoutSubviews() {
super.layoutSubviews()
self.layer.cornerRadius = self.bounds.height * 0.50
}
因此,当您将自定义UIButton添加到子视图时,它将知道它的边界,而您只需要将转角半径指定为边界高度的一半即可。
答案 2 :(得分:0)
为此最好使用IBDesignable
:
@IBDesignable
class RoundedButton: UIButton {
@IBInspectable var cornerRadius: CGFloat = 3.0 {
didSet {
self.layer.cornerRadius = cornerRadius
}
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
self.setupView()
}
override func awakeFromNib() {
super.awakeFromNib()
self.setupView()
}
func setupView() {
self.layer.masksToBounds = false
self.layer.cornerRadius = cornerRadius
}
}
答案 3 :(得分:0)
我在这里偶然发现了这个问题,发现我在Swift 5中最有效的方法是在awakeFromNib
内的Disptatch.main.async
内设置layoutSubviews
的拐角半径每一次小的变化或动作都要求关闭。这可能适用于某些用例。在上面的示例中,我还没有尝试过。
我的代码如下:
setNeedsLayout