如何使用lldb expr在设置运行时设置UIView的框架(DEBUGGING控制台)

问题描述 投票:7回答:3

我正在尝试以下方法

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

我越来越

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

我正在使用XCode 6.1,LLDB版本lldb-320.4.152

ios xcode console lldb
3个回答
5
投票

好的,这是一种有效的方法

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

3
投票

你可以使用C compound literals来创建CGRect,因为它只是一个C结构

它看起来像这样

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

1
投票

这对我有用:

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

其中0x7fe38ce039c0是我希望由pviews打印的视图的ID。你需要chiselpviewscaflush在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; 
© www.soinside.com 2019 - 2024. All rights reserved.