iOS - UIView描述帧与调试器recursiveDescription帧不匹配

时间:2012-11-15 22:59:11

标签: ios xcode uiview uiscrollview

我在调试为什么我的scrollView无法滚动时遇到了这个问题。对于上下文,我的布局结构是:

-ScrollView
  - View
     - labels, images, buttons

更新scrollView.contentSize以匹配(子)视图不起作用,所以我输入了一些调试语句。当i NSLog描述时,视图的框架大小为0,0但是如果我运行调试器的recursiveDescription,则显示不同。

知道为什么,这可能会影响为什么我的滚动不起作用?

来自NSLog(@"%@", [self.view description])

  

2012-11-15 17:16:46.707 Comparo [65731:11303]首发:< UIView:   的 0x7144590 ; frame =(0 0; 0 0 ); autoresize = TM + BM; layer =   < CALayer:0x714b4f0>>

     

2012-11-15 17:16:46.708 Comparo [65731:11303] 1:< UIView:0x7144590;   frame =(0 0; 0 0); autoresize = TM + BM; layer =< CALayer:   0x714b4f0>>

     

2012-11-15 17:16:46.771 Comparo [65731:11303] 2:< UIView:0x7144590;   frame =(0 0; 0 0); autoresize = TM + BM; layer =< CALayer:   0x714b4f0>>

     

2012-11-15 17:16:46.771 Comparo [65731:11303] 3:< UIView:0x7144590;   frame =(0 0; 0 0); autoresize = TM + BM; layer =< CALayer:   0x714b4f0>>

     

2012-11-15 17:16:46.772 Comparo [65731:11303] 4:< UIView:0x7144590;   frame =(0 0; 0 0); autoresize = TM + BM; layer =< CALayer:   0x714b4f0>>

调试器输出:(lldb) po [[UIApp keyWindow] recursiveDescription]

  

...

     

| | | | < UIScrollView:0x71494d0; frame =(0 0; 320 504);   clipsToBounds = YES; autoresize = TM + BM; gestureRecognizers =   < NSArray:0x75d3bb0&gt ;; layer =< CALayer:0x71f9ed0&gt ;;   contentOffset:{0,0}>

     

| | | | | < UIView: 0x7144590 ; frame =(0 0; 320 523 );   autoresize = TM + BM; layer =< CALayer:0x714b4f0>>

感谢。

1 个答案:

答案 0 :(得分:1)

谢谢Rob!

你认为这是一个时间问题是正确的,并且没有办法保证在viewDidLoad(我有我的NSLog语句)中最终确定帧。我将语句移动到viewDidAppear:,这是用户首先能够与他们交互并滚动的地方,现在数字匹配。

奖金:解决了我的滚动问题。