iPhone - 可以在Xcode调试器中检查UIView的帧吗?

Wil*_*sch 33 iphone debugging xcode

当调试器在断点处停止时,我找不到任何UIViews的帧.

是否有可能做到这一点?

编辑:由于缺乏回应而开始赏金.为了清楚起见,我正在寻找的是一种在不添加额外调试代码的情况下查看框架的方法.

此外,如果答案是"不,你不能做到",赏金将最好地解释为什么你可以看到一些班级成员而不是其他人.

Hil*_*ell 46

是的,你可以做到.在调试时,在变量检查器中找到感兴趣的UIView.按住Control键并单击它,然后选择"将描述打印到控制台".例如,我在UIViewController的_view ivar上执行了此操作,并且以下内容出现在控制台中:

打印_view的描述:
<UIView:0x25b460; frame =(0 0; 320 480); autoresize = W + H; layer = <CALayer:0x26b740 >>


Dou*_*las 32

如果您转到调试器面板,则可以在断点处输入:

(gdb) print (CGRect) [self frame]
$1 = {
  origin = {
    x = 0, 
    y = 0
  }, 
  size = {
    width = 100, 
    height = 100
  }
}
Run Code Online (Sandbox Code Playgroud)

使用控制台调试器时,可以按向上箭头键循环显示以前的命令.在不输入命令的情况下按返回会重复上一个命令.


Ada*_*dam 19

重新格式化@ EPage_Ed的答案,因为原件是针对他的特定情况硬编码的:

在(lldb)提示符下,键入:

print (CGRect)[view frame]
Run Code Online (Sandbox Code Playgroud)

或者,对于边界:

print (CGRect)[view bounds]
Run Code Online (Sandbox Code Playgroud)


Nis*_*ant 6

NSLog(@"My view frame: %@", NSStringFromCGRect(myView.frame));
Run Code Online (Sandbox Code Playgroud)