uiview 上的角半径没有按预期工作

Posted

技术标签:

【中文标题】uiview 上的角半径没有按预期工作【英文标题】:corner radius on a uiview not working as expected 【发布时间】:2017-11-05 07:06:13 【问题描述】:
cornerRadius = (view.frame.size.height / 2.0)

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

输出画面-

【问题讨论】:

如果我们知道您的期望会有所帮助,因为它看起来像编码一样工作。 设置宽高限制 【参考方案1】:

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

override func viewDidLayoutSubviews() 
    self.prepareUI();

【讨论】:

感谢您的回答。【参考方案2】:

我猜你希望你的圆角半径相互交汇,并且它们之间没有垂直直线?这样你的红色和绿色按钮的两边会合成一个半圆吗?

你的视图约束直到viewDidLayoutSubviews()函数才真正解决,所以如果你的视图在运行时因为你设置的约束而改变,你计算角半径的框架将会改变之后 viewDidLoad。如果你改用viewDidLayoutSubviews() 应该没问题:

override func viewDidLayoutSubviews() 
    self.prepareUI();

【讨论】:

感谢您的回答。【参考方案3】:

您只需要为您的视图设置 clipToBounds 为真。 示例;

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

【讨论】:

不完全是我想要的,答案在上面的帖子中。

以上是关于uiview 上的角半径没有按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

UIView.convertPoint 没有按预期工作

动画 UIView 没有按预期工作

在 UIView 上绘制的遮罩层的角半径

未显示超级视图子视图 UIView 的角半径

如何在 iOS Swift 中将不同的角半径应用于 UIView 的不同角?

空 UIView 上的自动布局约束无法按预期工作