uiview上的圆angular半径不按预期工作

cornerRadius = (view.frame.size.height / 2.0) 

似乎没有按预期工作。 如何解决这个问题? 可能是什么问题?

输出屏幕 –

我的代码和模拟器输出显示在这个图像。点击这里

在这种情况下我的解决scheme是你应该把prepareUI方法在viewDidLayoutSubviews 。 尝试添加下面的代码。

 override func viewDidLayoutSubviews() { self.prepareUI(); } 

我猜你想让你的angular落半径相遇,而不是在他们之间有一条直线? 那么你的红色和绿色button的两边会在一个半圈?

您的视图约束直到viewDidLayoutSubviews()函数才被真正解决,所以如果您的视图在运行时由于您设置的约束而更改,则您计算angular半径的帧将 viewDidLoad 之后更改。 如果你使用viewDidLayoutSubviews()而不是你应该没事的:

 override func viewDidLayoutSubviews() { self.prepareUI(); } 

你只需要为你的View设置clipToBounds true。
例;

让view = UIView()
view.layer.cornerRadius = 14;
view.clipsToBounds = true;