2012-11-15 78 views
1

我在調試時遇到了這個問題,爲什麼我的scrollView不會滾動。對於情況下,我的佈局結構爲:iOS - UIView描述框架不匹配調試器遞歸描述框架

-ScrollView 
    - View 
    - labels, images, buttons 

更新scrollView.contentSize匹配(子)視圖是行不通的,所以我把一些調試語句。原來視圖的框架大小爲0,0當我NSLog其描述,但如果我運行調試器的recursiveDescription,它顯示不同。

任何想法爲什麼,並可能影響爲什麼我的滾動不起作用?

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

2012年11月15日17:16:46.707的comparo [65731:11303]起始:<的UIView: 0x7144590;幀=(0 0; ); autoresize = TM + BM;層= <的CALayer:0x714b4f0 > >

2012年11月15日17:16:46.708的comparo [65731:11303] 1:<的UIView:0x7144590; frame =(0 0; 0 0); autoresize = TM + BM;層= <的CALayer: 0x714b4f0 > >

2012年11月15日17:16:46.771的comparo [65731:11303] 2:<的UIView:0x7144590; frame =(0 0; 0 0); autoresize = TM + BM;層= <的CALayer: 0x714b4f0 > >

2012年11月15日17:16:46.771的comparo [65731:11303] 3:<的UIView:0x7144590; frame =(0 0; 0 0); autoresize = TM + BM;層= <的CALayer: 0x714b4f0 > >

2012年11月15日17:16:46.772的comparo [65731:11303] 4:<的UIView:0x7144590; frame =(0 0; 0 0); autoresize = TM + BM;層= <的CALayer: 0x714b4f0 > >

調試器輸出爲:(lldb) po [[UIApp keyWindow] recursiveDescription]

...

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

| | | | | < UIView:0x7144590; frame =(0 0; ); autoresize = TM + BM;層= <的CALayer:0x714b4f0 > >

感謝。

+1

你的'NSLog'語句有哪些方法? –

+0

這些數字僅供我參考,但是它們始終在viewdidload開始處散落,貫穿我在不同點的設置功能以及文本標籤等更新後的最後部分 – myclues

+1

您的視圖框架不一定會在您設置時正確設置接收'viewDidLoad'。看看[這個答案](http://stackoverflow.com/questions/9539676/uiviewcontroller-returns-invalid-frame/9540935#9540935)。 –

回答

1

感謝羅!

你說得對,它是一個時間問題,有沒有辦法可以保證幀將在viewDidLoad中敲定(在那裏我有我的NSLog語句)。我將這些語句移到了viewDidAppear :,這是用戶首先能夠與它們交互並滾動的地方,現在這些數字相互匹配。

獎勵:解決了我的問題,滾動得。