uiview上的角半径未按预期工作

时间:2017-11-05 07:06:13

标签: ios swift uiview autolayout

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

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

输出屏幕 -

My code and simulator output is shown in this image. Click Here

3 个答案:

答案 0 :(得分:0)

我在这种情况下的解决方案是您应该将prepareUI方法放在viewDidLayoutSubviews中。尝试添加以下代码。

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

答案 1 :(得分:0)

我猜你想要你的角半径相互碰撞,而它们之间没有垂直直线?那么红色和绿色按钮的两侧会合半圆形?

viewDidLayoutSubviews()函数之前,您的视图约束实际上并未解决,因此如果您的视图在运行时由于您设置的约束而发生更改,则计算角半径的帧将更改< em>在 viewDidLoad之后。如果您使用viewDidLayoutSubviews(),那么您应该没问题:

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

答案 2 :(得分:-1)

您只需要为View设置clipToBounds为true。
实施例;

  

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