设置文本后视图的圆角半径

Corner radius for view after setting text

我有一个 UIView,其中包含一个 UILabelUIView 的大小适应 UILabel.

的大小

我希望 UIView 是一个圆,所以我设置了圆角半径:

view.clipToBounds = true
label.text = "123"
view.layer.cornerRadius = view.frame.size.height / 2

但是,如果我调用上面的代码,有时角半径不适应。 UIView 框架似乎还没有改变它的大小。 UIViewUITableViewCell 里面。

如果您不介意子类化,您可以执行以下操作:

import UIKit

class RoundedView: UIView {

    override func layoutSubviews() {
        super.layoutSubviews()
        layer.cornerRadius = frame.height / 2.0
    }

}

这将在调整视图大小时随时将角半径调整到适当的高度。