Swift viewDidLoad或DidLayoutSubView用于设置圆角?
我正在寻找在我的代码中设置视图圆角半径的完美位置。 有时,在我将cornerRadius设置为frame.height/2之后,UI似乎缩小了我的视图,因此我得到了一个“更圆”的视图(看起来像一只眼睛) 我正在用Interface Builder构建我的应用程序,所以我认为调用Swift viewDidLoad或DidLayoutSubView用于设置圆角?,swift,uikit,Swift,Uikit,我正在寻找在我的代码中设置视图圆角半径的完美位置。 有时,在我将cornerRadius设置为frame.height/2之后,UI似乎缩小了我的视图,因此我得到了一个“更圆”的视图(看起来像一只眼睛) 我正在用Interface Builder构建我的应用程序,所以我认为调用myButton.layer.cornerRadius=myButton.frame.height/2 我还尝试在viewdilayoutsubviews中设计视图,但也有一些奇怪的结果 因此,我的一般问题是: 我应该将c
myButton.layer.cornerRadius=myButton.frame.height/2
我还尝试在viewdilayoutsubviews
中设计视图,但也有一些奇怪的结果
因此,我的一般问题是:
我应该将corneradius
代码放在哪里以确保得到正确的结果
谢谢你的回复
编辑:
问题尤其是与superview高度成比例的按钮(或视图)。固定高度,工作良好 在viewDidLoad()
方法中设置角半径应该可以正常工作
如果你得到了你所说的“更圆”的效果,试着用
myButton.layer.cornerRadius=myButton.bounds.height/2
然后打电话
myButton.setup(withCornerRadius: myButton.bounds.height/2)
myButton.layoutifneed()
编辑
如果有很多按钮要设置,可以在这样的扩展中创建一个通用方法
extension UIView
{
func setup(withCornerRadius radius: CGFloat)
{
self.layer.cornerRadius = radius
self.layoutIfNeeded()
}
}
然后打电话
myButton.setup(withCornerRadius: myButton.bounds.height/2)
您是否只在viewDidLoad中放置了myButton.layer.cornerRadius=myButton.frame.height/2
如果将其放置在两个视图中,则将其从子视图中删除
并确保按钮的大小为“正方形”。我的意思是身高和体重相等。因此,在viewDidLoad中,对于每个(圆形)视图,都需要调用LayoutIfNeed
?好的,我尝试过,但如果我的按钮的高度与superview成比例,而不是固定高度,我仍然会遇到同样的问题(“更圆”)。您知道如何实现具有比例高度的圆角按钮吗?请尝试在viewWillAppear方法中移动设置调用。我尝试了这两种方法:仅在ViewDiLoad和仅在DidLayoutSubView中都无法使用比例高度