備忘録 〜プログラミング〜

プログラミングに関する事をつらつらと、、

ios、layoutSubviewsメソッド時のwidthとheight

画面が回転したときにViewに配置したオブジェクトの位置を変わらないようにしたくてlayoutSubviewsでsetFrameしたときにハマったのでメモ。
縦向きから横向きに変わったときに、self.frame.size.widthでオブジェクトの位置を指定すると、なぜかズレてしまうのでNSLogで幅を見てみたら、

320 -> 320

変化なし。
self.frameのところを、self.boundsにしてみると。

320 -> 568

変化した。
これで無事にオブジェクトの位置を変えずにレイアウトする事が可能に。
ここに書いてるように、frameだと変化はしないようですね。

ios - why self.view.frame and self.view.bounds are different when the devices rotate? - Stack Overflow

 

ちなみに、下記の方法でレイアウトの調整を行っています。


iOS - IB/Storyboard使わない派のlayoutSubviewsによるレイアウト調整 - Qiita