【问题标题】:how to set the frame of a UIView at runtime using lldb expr (DEBUGGING Console)如何在运行时使用 lldb expr(调试控制台)设置 UIView 的框架
【发布时间】:2015-02-16 11:32:04
【问题描述】:

我正在尝试以下方法

(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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      它看起来像这样

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

      【讨论】:

        【解决方案3】:

        这对我有用:

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

        0x7fe38ce039c0 是我想要由pviews 打印出来的视图的 ID。您需要 chisel 才能在 lldb 中工作以供 pviewscaflush 使用。

        (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; 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-12
          • 1970-01-01
          • 2023-04-08
          • 2014-09-09
          • 1970-01-01
          • 2016-04-03
          • 1970-01-01
          相关资源
          最近更新 更多