UIButton子类使用其大小通过Autolayout设置拐角半径



我有以下UIButton的子类,只是为了给UIButton一个圆形边界,假设UIButton的高度和宽度设置相等。但是当自动布局完成它的工作时,我没有得到正确的半径。如何更改此类以使其在自动布局中正常工作?

import UIKit
class CircularButton: UIButton {
    required init?(coder aDecoder: NSCoder)
    {
        super.init(coder: aDecoder)
        self.layer.cornerRadius = self.bounds.size.height / 2
        self.layer.borderWidth = 1
    }
}

始终调用:

setNeedsLayout()
layoutIfNeeded()

在使用"自动布局"时访问视图的边框或边界之前。否则,在通过AutoLayout设置视图之前访问视图的大小。调用这两个方法将强制执行AutoLayout过程,从而允许您访问视图的正确大小。

此外,应在awakeFromNib而不是init中设置拐角半径。

最新更新