角半径在堆栈视图中变得失真

时间:2018-09-23 20:24:44

标签: ios swift

我在viewDidLayoutSubviews中有一个按钮,如下所示:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews() 
    self.buttonOne.layer.cornerRadius = self.buttonOne.frame.size.height/2.0
    self.buttonOne.layer.borderColor = UIColor.white.cgColor
    self.buttonOne.layer.borderWidth = 1.0
    self.buttonOne.clipsToBounds = true
}

我的圈子歪了。我该如何解决?。谢谢

2 个答案:

答案 0 :(得分:0)

问题出在其他地方。很可能您还有其他代码或约束,这些代码或约束随后会出现并拉伸按钮,并且由于图层是缓存的图形,因此会对其进行拉伸。

我们知道问题出在其他地方,因为如果仅运行您提供的代码,而没有更多,我们将得到一个圆形按钮:

enter image description here

答案 1 :(得分:0)

我通过如下方式固定它,即在堆栈视图中为按钮赋予相同的宽度和高度,

override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        self.buttonOne.frame.size = CGSize(width:60,height:60)
        self.buttonOne.layer.cornerRadius = self.buttonOne.frame.size.height/2.0
        self.buttonOne.layer.borderColor = UIColor.white.cgColor
        self.buttonOne.layer.borderWidth = 1.0
        self.buttonOne.clipsToBounds = true
    }