社畜系WEBエンジニアの消耗戦

社畜系WEBエンジニアの消耗戦

修羅の国でせっせと働く社畜系WEBエンジニアのブログ

viewの大きさを他のviewに合わせたいならviewDidLayoutSubviewsで

はやくSwiftとお友達になりたい。

やりたかったこと

生成したViewを横幅いっぱいにしたいので、UIScreen.mainScreen().boundsで取得した画面サイズをそのままwidthに指定したい。

ハマったところ

viewを作るときに、viewDidLoad内でwidthをscreen.widthで指定していたが、なんか小さい。

全然画面いっぱいにならない。

教えてもらった

ほう、、タイミングか。なるほどね。

結論

viewDidLoadではviewのサイズが不定なので、サイズが決まったタイミング(viewDidLayoutSubviews)で指定する。

サンプルコード

customViewviewDidLoadで生成しているものとする

let screen: CGRect = UIScreen.mainScreen().bounds

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    customView.frame.size.width = screen.width
}