2016-11-25 68 views
1

在我的應用程序中,我有幾個UIButton s,我想要圓角。所有這些按鈕都放置在Storyboard中。繪製func不適用於故事板上的按鈕

我創建了自定義類RoundedButton,它具有draw func的簡單覆蓋。

import UIKit 

class RoundedButton: UIButton { 

    override func draw(_ rect: CGRect) { 
     self.layer.cornerRadius = 4.0 
    } 

} 

我已經將此自定義類添加到Storyboard中的每個按鈕,但按鈕的角不會在模擬器中四捨五入。

感謝您的幫助!

+2

'draw'方法不適合設置拐角半徑。它應該在適當的初始化器中設置一次。 – rmaddy

+0

那麼,我需要把這個代碼放在哪裏?我想寫一次,而不是每個VC都有UIButton。 –

+1

您是否看過我的評論?我說明它屬於哪裏。 – rmaddy

回答

1

而應該覆蓋的init

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 

    layer.cornerRadius = 4.0 
} 

編輯:

,如果你不使用故事板或XIB的

override init(frame: CGRect) { 
    super.init(frame: frame) 

    layer.cornerRadius = 4.0 
} 
2

draw方法是不添加這一塊合適的地方的代碼。

你應該把它移動到awakeFromNib

來到你的問題,設置cornerRadius之後添加self.layer.masksToBounds = true。圓角將出現。