【swift】ボタンをカスタマイズする方法メモ

はじめに

今回やりたかったのは、大きめのボタンで文字列が2行のもの。
まぁ1回やってしまえばどうってことないんですど次回やるときのためにメモ

ちょっとセンスないですが、やりたいことはこんな感じです
f:id:yoppy0066:20150722024656p:plain

実装

iPhoneアプリでボタンなどの部品をカスタマイズする方法は基本的に同じで、viewに部品を追加してやるだけなので直感的にもわかりやすかったです

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        var button = CustomButton(frame: CGRectMake(0,0,200,100))
        button.layer.position = CGPoint(x: self.view.frame.width/2, y:200)
        button.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        self.view.addSubview(button)
    }
}

class CustomButton: UIButton {
    
    var labelText = UILabel()
    var labelText2 = UILabel()
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.setData()
    }
    
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.setData()
    }
    
    func setData() {
        // ボタンの色
        self.backgroundColor = UIColor.greenColor()
        // 角丸に
        self.layer.cornerRadius = 10
        // ラベルの位置を定義
        var widthMax: CGFloat = self.frame.width
        var heightMax: CGFloat = self.frame.height
        
        var widthLabelText: CGFloat = widthMax
        var widthLabelText2: CGFloat = widthMax
        
        var heightLabelText: CGFloat = heightMax/2
        var heightLabelText2: CGFloat = heightMax/2
        
        var xLabelText: CGFloat = 0
        var xLabelText2: CGFloat = 0
        
        var yLabelText: CGFloat = 0
        var yLabelText2: CGFloat = heightLabelText
        // ラベルをボタンに追加
        labelText.frame = CGRectMake(xLabelText, yLabelText, widthLabelText, heightLabelText)
        labelText.textAlignment = NSTextAlignment.Center
        labelText.text = "ここから"
        labelText.font = UIFont.boldSystemFontOfSize(23)
        self.addSubview(labelText)
        // ラベルをボタンに追加
        labelText2.frame = CGRectMake(xLabelText2, yLabelText2, widthLabelText2, heightLabelText2)
        labelText2.textAlignment = NSTextAlignment.Center
        labelText2.text = "スタート"
        labelText2.font = UIFont.boldSystemFontOfSize(23)
        self.addSubview(labelText2)
    }
}

基本こんな感じでいけるのでわかりやすいですね

以上です