How to set UIView frame at runtime using lldb expr (DEBUGGING Console)

I am trying to do the following

(lldb) expr [_tvFeed setFrame:(CGRect)CGRectMake(0, 0, 320, 300)]; 

I get

 error: call to 'CGRectMake' is ambiguous note: candidate function note: candidate function error: 1 errors parsing expression 

I am using Xcode 6.1, LLDB version lldb-320.4.152

+7
source share
3 answers

Ok so that worked

 expr CGRect rect; rect.origin.x=0; rect.origin.y=0; rect.size.width=320; rect.size.height=300; (void)[_tvFeed setFrame:rect]; 
+5
source

You can use C compound literals to create a CGRect, because it is just a C struct

It will look like

 (lldb) expr [_tvFeed setFrame:(CGRect){0, 0, 320, 300}]; 
+3
source

This worked for me:

 (lldb) e (void)[(id)0x7fe38ce039c0 setFrame:(CGRect){0,0,200,300}] (lldb) caflush 

Where 0x7fe38ce039c0 is the identifier of the view I want to print using pviews . You need a chisel for pviews and caflush to work in lldb.

 (lldb) pviews 
 UIWindow: *0x7fe38ce1e330*; frame = (0 0; 414 896); gestureRecognizers = <NSArray: 0x6000006b57a0>; layer = <UIWindowLayer: 0x6000008de480>> | <UILayoutContainerView: 0x7fe38ce2ab70; frame = (0 0; 414 896); autoresize = W+H; layer = <CALayer: 0x6000008c2300>> | | <UITransitionView: 0x7fe38cf079d0; frame = (0 0; 414 896); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x60000086d860>> | | | <UIViewControllerWrapperView: 0x7fe38cd22f40; frame = (0 0; 414 896); autoresize = W+H; layer = <CALayer: 0x60000089a640>> | | | | <UILayoutContainerView: 0x7fe38f6059c0; frame = (0 0; 414 896); autoresize = W+H; gestureRecognizers = <NSArray: 0x60000068f450>; layer = <CALayer: 0x600000890180>> | | | | | <UINavigationTransitionView: 0x7fe38f608170; frame = (0 0; 414 896); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x600000890700>> | | | | | | <UIViewControllerWrapperView: 0x7fe38cf13280; frame = (0 0; 414 896); autoresize = W+H; layer = <CALayer: 0x6000008de9a0>> | | | | | | | <UIView: 0x7fe38f304940; frame = (0 0; 414 896); autoresize = W+H; layer = <CALayer: 0x6000008c6800>> | | | | | <UINavigationBar: 0x7fe38f605bc0; 
0
source

Source: https://habr.com/ru/post/1209397/


All Articles