我有一个UIButton(在界面构建器中创建),我将它设置为button.layer.borderRadius = button.frame.size.width/2.0;
(以编程方式,在viewDidAppear :)中变成了一个圆圈。但是,它所属的viewController是通过动画模式呈现的。由于viewDidAppear
在转换动画结束之后才会调用,因此该按钮在此之前是方形的,这使得突然变化非常刺耳。在viewDidAppear之前获取UIButton宽度,使用AutoLayout
我不能在viewDidLoad
设置半径,因为按钮属性不正确,然后(宽度太大),我认为这是因为自动布局约束尚未得到妥善解决。我试图通过调用viewDidLoad
中的[self.view setNeedsLayout]
,然后设置cornerRadius来修正此问题,但按钮宽度仍然不正确。我不明白的是,在动画过程中,所有东西都能正确渲染,表明自动布局约束/已经解决,或者iOS以快速动画的名义做其他事情(比如存储快照预览以用于动画)。
有什么建议吗?
的尝试设置圆角半径在viewDidLoad中的结果:
我接受了最好的答案,因为它更直接地回答了我问的问题,但对于我的情况,这是我认为的更好的解决方案。非常感谢。 – user2589494
这只适用于按钮是方形的。调用'sizeToFit()'使其具有有意义的大小后,它通常将是矩形。 –