2012-10-09 36 views
1

當我創建在界面生成器標籤和鉤出口到的viewController,並登錄在viewDidLoad中的標籤,如下所示:在viewDidLoad中獲取在IB中製作的視圖的框架?

的NSLog(@「標籤:%@」,self.label);

它給了我一個(0,0,0,0)的框架。 self.view給我一個大於0的大小。一個較老的程序的標籤也給我一個大於0的大小。它將把標籤中的文本記錄下來,所以它正確地連接起來。這是Xcode 4.5中的變化嗎?如何訪問我在Interface Builder中設置的框架?

這是日誌:

的UILabel:0x754e1b0; frame =(0 0; 0 0); text ='這是一個標籤'; clipsToBounds = YES; opaque = NO; autoresize = TM + BM; userInteractionEnabled = NO;層= ...

回答

0

一般的幀佈局在viewDidLoad不可靠的。在筆尖的情況下,這應該不成問題。你有沒有機會使用AutoLayout?

還請在viewWillAppear中記錄相同的值,這肯定會有正確的值。我通常使用viewWillLoad來啓動我的UI元素,並使用viewWillLoad來正確放置它們。

+0

viewWillAppear給了我一個0尺寸,但viewDidAppear給我的實際尺寸。 –

+1

謝謝!自動佈局是個問題。現在真正的大小顯示在viewDidLoad和viewWillAppear和其他一切。我將不得不瞭解這個自動佈局的事情。 –

0

嘗試這種情況:

NSLog(@"Label Frame: %@",NSStringFromCGRect(self.label.frame)); 
+0

它給我{{0,0},{0,0}} –

+0

你確定你已經連接了Interface Builder中的標籤嗎? – WrightsCS

相關問題