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 上的角半径没有按预期工作的主要内容,如果未能解决你的问题,请参考以下文章