2016-11-25 7 views
1

私のアプリでは、角が丸くなるようにいくつかのUIButtonがあります。これらのボタンはすべてStoryboardに配置されています。draw funcはストーリーボードのボタンでは機能しません

私はカスタムクラスRoundedButtonを作成しました。このクラスはdraw funcという単純なオーバーライドを持っています。

import UIKit 

class RoundedButton: UIButton { 

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

} 

私は、ストーリーボード内のすべてのボタンに、このカスタムクラスを追加しましたが、ボタンのコーナーは、シミュレータで四捨五入されていません。

ありがとうございました!

+2

'draw'メソッドは、コーナーの半径を設定する適切な場所ではありません。適切なイニシャライザで一度設定する必要があります。 – rmaddy

+0

だから、私はこのコードを置く必要がありますか?私はUIButtonを持っているすべてのVCではなく、一度それを書きたいと思っています。 –

+1

コメントはありましたか?私はそれがどこに属しているか述べました – rmaddy

答えて

1

あなたが代わりに

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

    layer.cornerRadius = 4.0 
} 

にEDITEDのinitをオーバーライドする必要があります:あなたはストーリーボードを使用していない、またはXIBの

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

    layer.cornerRadius = 4.0 
} 
2

draw方法は、この作品を追加するための適切な場所ではない場合

をコードの

あなたは、あなたの質問に来awakeFromNib

に移動cornerRadiusを設定した後self.layer.masksToBounds = trueを追加する必要があります。丸い角が表示されます。

関連する問題