[iPhone] UIView の frame と bounds の違い
UIView の位置やサイズを知るプロパティに frame と bounds があります。この frame とbounds の違いを簡単にまとめて見ました。
簡単にまとめると以下のようになります。
- frame はスーパービューから見た座標
- bounds はローカルのビューから見た座標
実際に親子関係のビューを作成して確認してみます。
ViewB は ViewA の中に配置されています。
[ViewA addSubView:ViewB] のような関係です。
この時の frame と bounds はそれぞれ以下のようになります。
ViewA.frame origin: 0,0 size: 550×400
ViewA.bouns origin: 0,0 size: 550×400
ViewB.frame origin: 200,100 size: 200×250
ViewB.bounds origin: 0,0 size: 200×250
次に以下のように45度 ViewB を回転させてみます。
のようにしました。
この時の frame と bounds はそれぞれ以下のようになります。
ViewB.frame origin: 140,65 size: 320x320
ViewB.bounds origin: 0,0 size: 200x250
上記のように回転させるとスーパービューから見る frame は座標位置もサイズも変わりますが、ローカルのビューで見る bounds は座標位置、サイズともに変わりありません。
非常に基本的なことですが、このことを頭に入れておけば frame か bounds のどちらを使うか迷わなくなると思います。
関連する投稿
5 comments
コメントをどうぞ
Additional comments powered by BackType
UIView の frame と bounds の違い
http://bit.ly/aslpga
This comment was originally posted on Twitter
[...] http://www.syuhari.jp/blog/archives/2072 [...]
[...] http://blog.syuhari.jp/archives/2072 [...]
[...] http://blog.syuhari.jp/archives/2072 [...]
3rectangular…
…