升级到Xcode 8后,UIButton的圆角半径不起作用了

3

我正在设置UIButton的圆角半径,方法如下:

self.btnFBLogin.layer.cornerRadius = self.btnFBLogin.frame.size.height/2;
self.btnFBLogin.layer.masksToBounds = YES;

然而,在升级到Xcode 8之后,它就无法正常工作了。按钮在屏幕上不显示。但是,如果我不设置角半径,它会显示为一个正方形框。有人遇到过类似的问题吗?


在XCode 8中,由于其新的缩放系统,在ViewDidLayoutSubviews之前bounds和frame不正确(它们可能存在,但具有像1000 x 1000这样的虚拟值)- https://dev59.com/b5rga4cB1Zd3GeqPrb5k#39495236 - Ashildr
2个回答

13

试一下

勾选 Clip Subviews

希望这能帮到你


5

很有可能你正在太早地运行这段代码(例如在viewDidLoad中)。请在viewDidLayoutSubviews中执行。


是的,那正是我所做的。 - Sujit Dalai
1
重新发布此帖,因为我遇到了同样的问题。在设置圆角半径之前,通过调用layoutIfNeeded:解决了此问题。这种方法的缺点是什么? - Andrea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接