UIView の階層を lldb の print-object で見てみた
iPhone の画面に張り付いている UIView の階層をコマンド一つで確認できるなんて知らなかった…。
こんな感じ。
(lldb) po [[self view] recursiveDescription] (id) $1 = 0x0945f030 <UIView: 0x8777ac0; frame = (0 0; 320 411); autoresize = W+H; layer = <CALayer: 0x8777bd0>> | <UIButton: 0x9450b80; frame = (25 63; 270 113); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x9450c10>> | | <UIImageView: 0xcd68790; frame = (0 0; 270 113); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xcd6b060>> | | <UIButtonLabel: 0x8779da0; frame = (270 47; 0 19); text = 'Sleep'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x8752c20>> | <UIImageView: 0x8774700; frame = (0 0; 320 56); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x8776780>> | <UIButton: 0x944efb0; frame = (25 186; 270 113); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x944f070>> | | <UIImageView: 0xcd714d0; frame = (0 0; 270 113); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xcd71510>> | | <UIButtonLabel: 0x9450670; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x9450740>> | <UILabel: 0x87779d0; frame = (25 336; 270 21); text = ''; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x8777a40>> | <UILabel: 0x877a5d0; frame = (25 307; 270 21); text = ''; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x877a110>> | <UIView: 0x92536a0; frame = (100 146; 120 120); clipsToBounds = YES; alpha = 0.3; hidden = YES; tag = 10001; layer = <CALayer: 0x9254b60>> | <UIActivityIndicatorView: 0x9251b90; frame = (141 187; 37 37); hidden = YES; tag = 10002; layer = <CALayer: 0x92505c0>> | | <UIImageView: 0x9274da0; frame = (0 0; 37 37); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x9254cc0>> | <UIImageView: 0x87774e0; frame = (0 411; 320 50); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x87769c0>> (lldb)
@interface MainViewController : UIViewController <UIGestureRecognizerDelegate> { UIButton *sButton; UIButton *gButton; UILabel *messageLabel; UILabel *messageLabel2; UIImageView *bannerImageView; UIImageView *bottomBannerImageView; }
あ、UIActivityIndicatorView はここに出てないけどコードの中で作って貼り付けてある。
というわけで、lldb で po する時って objective-c のコードを入力できるのが面白いな〜。