2016-07-16 14 views
0

iosにカスタムUIButtonを作成しました。私は、同じ属性で異なるタイトルを10回使用して同じカスタムボタンを使用したいと思います。各ボタンに同じコードを繰り返さずにこれを行う最も効率的で巧妙な方法は何ですか?それは構造体であるべきか、クラスでなければならないのでしょうか?どのように実装できますか?iOSでカスタムボタンを作成して何度も使用するにはどうすればいいですか?

@IBOutlet weak var button_1: UIButton! 

button_1.frame = CGRectMake(0.0, 0.0, button_1.frame.width, button_1.frame.height) 
button_1.clipsToBounds = true 
button_1.layer.cornerRadius = button_1.frame.width/2.0 
button_1.layer.borderColor = UIColor.whiteColor().CGColor 
button_1.layer.borderWidth=2.0 
+0

両方の回答が機能しました。ありがとうございました! – arda30

答えて

4

あなただけmyButton.titleText = "myText"を書き、ボタンにテキストを設定するにはUIButton

@IBDesignable 
class MyOwnButton: UIButton { 
    var borderWidth = 2.0 
    var boderColor = UIColor.whiteColor().CGColor 
    @IBInspectable 
    var titleText: String? { 
     didSet { 
      self.setTitle(titleText, forState: .Normal) 
      self.setTitleColor(UIColor.blackColor(), forState: .Normal) 
     } 
    } 

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

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

    override func layoutSubviews() { 
     setup() 
    } 

    func setup() { 
     self.clipsToBounds = true 
     self.layer.cornerRadius = self.frame.size.width/2.0 
     self.layer.borderColor = borderColor 
     self.layer.borderWidth = borderWidth 
    } 

から延びて独自のクラスを作成することができます。

UIButtonをインターフェイスビルダからドラッグアンドドロップし、そのボタンのクラスを独自のMyOwnButtonに変更するか、コードで1つ作成します。

+0

あなたの答えに感謝します。このコードは、ボタンのタイトルが表示されないと思っています。私はストーリーボードの各ボタンのタイトルを与えていますが、表示されていません。私は上記のコードでself.setTitle( "myTitle"、.Normal)などを追加するのに疲れましたが、それでも動作しません。 – arda30

+0

変更された回答を確認してください。 'titleText'プロパティを使用してボタンのタイトルを設定できます。 – Brigadier

3

あなたは今、このよう

let button = UIButton.attributedButton(frame: CGRectMake(20, 20, 10, 40) 
button.setTitle("Title", forState: .Normal) 
self.view.addSubview(button) 
のように、このメソッドを呼び出して、この

extension UIButton { 
    class func attributedButton(frame: CGRect) -> UIButton { 
     let button = UIButton(frame: frame) 
     button.clipsToBounds = true 
     button.layer.cornerRadius = button_1.frame.width/2.0 
     button.layer.borderColor = UIColor.whiteColor().CGColor 
     button.layer.borderWidth = 2.0 
     return button 
    } 
} 

ようUIButtonextensionを作成する必要があります。次のように属性私は私のカスタムボタンに変更されたことがあります

これらの固定属性を持つボタンを作成するたびに、このメソッドを使用できます。

関連する問題