UIButtonの大きさを変えたいときの実装。
StoryboardからUIButtonをひもづけておいて、
コードでそのサイズを調整したいときのコードが下記。注意しないといけないのが、
override func viewDidLayoutSubviews()の中で処理を行わないといけないこと。
実行環境
Swift 4.1.2
Xcode 10.1
UIButtonの大きさの調整方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import UIKit class ViewController: UIViewController { @IBOutlet weak var button: UIButton! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() //ここに記載 self.button.frame = CGRect(x: (self.view.frame.size.width / 2) - 150, y: (self.view.frame.size.height / 2) - 50, width: 300, height: 100) self.button.backgroundColor = UIColor.red } } |
Storyboardを使う場合は、Auto Layoutを組んでしまうのが一番シンプルかつコード量も減って見やすい。
そのため、それでは対応できないときに、こちらのようなコードを書いてサイズを調整する。
なお、端末を縦持ち、横持ちにしてもちゃんと検知してサイズを調整してくれる(こちらを、override func viewDidAppear()の中で処理してしまうと、アプリ起動後の初回だけ呼ばれて、回転時は更新してくれないようでした)。