为什么cornerRadius.width / 2没有给我一个完美的圆?

时间:2018-09-29 08:09:20

标签: swift geometry cornerradius

我正在尝试使用以下代码从平方视图创建一个圆:

self.situationerCircle.layer.cornerRadius = self.situationerCircle.frame.size.width/2.0
situationerCircle.clipsToBounds = true

但是我仍然没有一个完美的圆形。我很确定这与我的约束有关,因为我使用这些约束进行了测试圈:

HERE

使用以下代码:

testc.layer.cornerRadius = self.testc.frame.size.width/2
testc.clipsToBounds = true

这很好用。但是,坏循环的约束看起来像这样:

HERE

原因是因为我想使其尺寸与容器成比例地增加,同时保持相同的1:1比例。但是结果是一个半圆形,具有细微但可见的边缘。有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果您尝试在viewDidLoad()中执行此代码,则可能会发生。 viewDidAppear()可以工作,但是如果您在单元格内部尝试,则可以使用一种名为awakeFromNib()的方法来定义对象。添加它并在那里替换您的代码。我同意Larme的回答,您可以致电layoutIfNeeded()刷新视图并强迫我认为是完美的圆。