下の写真を見てください
UIView を探していますが、いわゆる _frame 構造体が見つかりません。
AppleがUIViewフレームを内部的に正確に保存する方法は? そして、デバッグ中にそれを見つける最も簡単な方法は何でしょうか?
下の写真を見てください
UIView を探していますが、いわゆる _frame 構造体が見つかりません。
AppleがUIViewフレームを内部的に正確に保存する方法は? そして、デバッグ中にそれを見つける最も簡単な方法は何でしょうか?
AUIView
はフレームを保存しません。レイヤーのフレームを返すだけです。
ACALayer
もそのフレームを保存しません。bounds
レイヤーにそのフレームを要求すると、レイヤーはレイヤーの、position
、anchorPoint
、およびに基づいてフレームを計算しtransform
ます。(計算された をキャッシュする可能性frame
がありますが、メソッドを逆アセンブルする-[CALayer frame]
と、他のプロパティから計算するためのコードが見つかります。)
そして、CALayer
これらのプロパティはインスタンス変数に保存されません。代わりに、CA::Layer
プライベート C++ オブジェクトであるインスタンスへのポインターがあります。その C++ オブジェクトには、レイヤーのプロパティが格納されます。フィールドは、プライベートインスタンスへのview->_layer->_attr.layer
ポインターです。CA::Layer
ビューのフレームをデバッガーで見たい場合は、メッセージを送信する必要があります。その説明を尋ねることができます:
po _topBubble
または、そのフレームを要求することもできます:
p (CGRect)[_topBubble frame]