【发布时间】:2016-04-13 02:06:57
【问题描述】:
我有以下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
}
}
【问题讨论】:
-
可以截图吗?
-
问题是在init运行时,CircularButton的视图还没有正确设置最终的self.bounds.size。因为 Autolayout 稍后会做(在初始化之后)。因此角半径得到的值不一定是 self.bounds.size.height / 2 最终值的一半。我认为这很清楚,屏幕截图没有透露任何秘密。
标签: swift uibutton autolayout subclass