2013-01-11 111 views
1

我有一個UIViewController下的視圖層次結構,它包含主視圖的主視圖和幾個子視圖,全部在故事板中定義,並且全部使用IBOutlet連接。如何設置子視圖的框架

我想設置相對於主視圖的子視圖的位置和大小。

我試着在viewDidLoadviewWillAppear中設置它們。無論是工作還是調用時,主視圖都具有有效的幀值,但子視圖都具有(0,0,0,0)的幀。

如果我什麼都不做,那麼子視圖就完全出現在故事​​板上的位置。我需要使下面的代碼工作,但我不知道該把它放在哪裏。

CGRect newFrame = CGRectMake(10,10,50,50); 
[subView setFrame:newFrame]; 

另一種方式來問這個問題:
在哪裏,什麼時候故事板子視圖的幀需要設置?
或者,我應該使用代碼創建所有子視圖嗎?

+0

'viewWillAppear'? –

+0

答案取決於您是否使用Autolayout。你是? – jrturton

回答

0

子視圖的位置和大小可以在UIViewController調用viewDidAppear時設置,但會導致演示跳轉。在viewDid/WillLayoutSubviews中設置UITableView的位置和大小不起作用。

1

在使用自動佈局可以設置的意見框架viewDidLayoutSubviews方法或我用的就是調用這個方法[view setTranslatesAutoresizingMaskIntoConstraints:YES];,然後[view setFrame:...];的其他方式(如果框架從超視圖的邊框計算)。希望這可以幫助。

相關問題