UIView的cornerRadius不会均匀影响视图

时间:2017-04-14 03:52:19

标签: ios swift uiview quartz-core

我正在将cornerRadius正常应用于自定义视图:

self.layer.cornerRadius = self.frame.size.height/2

但是,我注意到UIView上的合成角未均匀应用。具体来说,如附图所示,顶部比底部开始淡入角落。当放大时,即使在正常观看水平下也可以看到不均匀的转弯。 enter image description here

有没有人遇到过这个问题才能解决它?

1 个答案:

答案 0 :(得分:1)

你在哪里称这条线?

self.layer.cornerRadius = self.frame.size.height/2

如果cornerRadius不是FINAL大小的一半,则通常会发生此错误。 例如:你在viewDidLoad中设置它,self的高度是100,cornerRadius现在是50,但是在自我完成布局之后,它的高度变为90,cornerRadius仍然是50。

有两种方法可以解决这个问题:

  1. 如果对高度使用固定约束,可以在任意位置设置cornerRadius:self.layer.cornerRadius = self.someHeightConstraint.constraint / 2

  2. 如果不这样做,请在视图完成布局后设置cornerRadius(在其superview的viewDidLayoutSubviews中)