【swift】ボタンをカスタマイズする方法メモ
はじめに
今回やりたかったのは、大きめのボタンで文字列が2行のもの。
まぁ1回やってしまえばどうってことないんですど次回やるときのためにメモ
ちょっとセンスないですが、やりたいことはこんな感じです
実装
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) } }
基本こんな感じでいけるのでわかりやすいですね
以上です