今回、UIImageを自分で合成しようとしていろいろと調べてみて、なんとなくでしか理解してないことがよく分かった。
ということで、自分の理解を改めて確認するために、UIViewの持っているframeとboundsの違いを書いてみることに。
Sponsor Link
frameとboundsの型は?
どちらも、CGRect型。CGRectは構造体で、内部に、originとsizeという変数をCGPoint型とCGSize型で持っている。
CGPointは、2次元の座標情報を保持することができるようになっていて、この場合は、originという名前の通り、原点を表す。
CGSizeは、2次元での大きさ情報を保持することができるようになっていて、この場合は、sizeという名前の通り、UIViewの大きさを表している。
frameとは?
UIViewの持っているframeの値は、親ビューの座標系の中での自分のビューの原点とサイズを持っている
boundsは?
では、boundsは何かというと、自分の座標系の中でのビューの原点とサイズになる。
結局違うの?
sizeについては、基本同じ数字が入っている気がする。transformかけたりすると、変わる。
originについては、親ビューの座標か、自分座標かなので、意味が全然違います。
いずれも、結構似ている数字が入っているので、気をつけて使い分けないと基本的なケースでのテストでは気づかずに、ハマりそう。
Sponsor Link