【Swift/ストーリーボード無し】UIButtonを右寄せ・左寄せ・paddingをつける方法

 

UIButtonで左寄りにしたくなったりするかと思いますが、以外にも書いている人がいなかったのでメモ。

UIButtonを右寄せ・左寄せ・任意のpadding

 

サンプルコードを載せておきます。

class ViewController: UIViewController {

    let leftUIButton:UIButton = UIButton()
    let rightUIButton:UIButton = UIButton()
    let paddingUIButton:UIButton = UIButton()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let screenWidth = UIScreen.main.bounds.size.width

        // 左寄り
        self.leftUIButton.setTitle("左寄りのテキスト", for: .normal)
        self.leftUIButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 30)
        self.leftUIButton.backgroundColor = UIColor.gray
        self.leftUIButton.contentHorizontalAlignment = UIControl.ContentHorizontalAlignment.left // or .left
        self.leftUIButton.frame = CGRect(x: 0, y: 200, width: screenWidth, height: 50)

        // 右寄り
        self.rightUIButton.setTitle("右寄りのテキスト", for: .normal)
        self.rightUIButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 30)
        self.rightUIButton.backgroundColor = UIColor.gray
        self.rightUIButton.contentHorizontalAlignment = UIControl.ContentHorizontalAlignment.right // or .right
        self.rightUIButton.frame = CGRect(x: 0, y: 300, width: screenWidth, height: 50)

        // centerから任意のpaddingを設定したやつ
        self.paddingUIButton.setTitle("任意のpaddinテキスト", for: .normal)
        self.paddingUIButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 30)
        self.paddingUIButton.backgroundColor = UIColor.gray
        // EdgeInsetsがcssのpaddingみたいな役割
        self.paddingUIButton.contentEdgeInsets = UIEdgeInsets(top: 50, left: 100, bottom: 20, right: 20)
        self.paddingUIButton.frame = CGRect(x: 0, y: 400, width: screenWidth, height: 50)

        self.view.addSubview(self.leftUIButton)
        self.view.addSubview(self.rightUIButton)
        self.view.addSubview(self.paddingUIButton)
    }


}

左寄せにしてからEdgeInsets設定とかも可能です。