[英]How to programmatically set a subview's frame to fit it inside its superview?
[英]How to set a subview's frame
我在UIViewController
下有一個視圖層次結構,該視圖層次結構由一個主視圖和該主視圖的幾個子視圖組成,所有這些子視圖都在情節提要中定義,並且都使用IBOutlet連接。
我想設置相對於主視圖的子視圖的位置和大小。
我試過在viewDidLoad
和viewWillAppear
設置它們。 兩種視圖均無效,並且在調用時,主視圖具有有效的幀值,但子視圖均具有(0,0,0,0)的幀。
如果我什么也不做,則子視圖將精確顯示在情節提要上的位置。 我需要使以下代碼工作,但我不知道將其放在哪里。
CGRect newFrame = CGRectMake(10,10,50,50);
[subView setFrame:newFrame];
提出此問題的另一種方法:
情節提要子視圖的框架在何時何處設置?
或者,我應該只使用代碼創建所有子視圖嗎?
當使用自動布局時,您可以在viewDidLayoutSubviews方法中設置視圖的框架(如果框架是從超級視圖的框架計算得出的),或者我使用的另一種方法是調用此方法[view setTranslatesAutoresizingMaskIntoConstraints:YES];
然后[view setFrame:...];
。 希望這可以幫助。
可以在UIViewController調用viewDidAppear時設置子視圖的位置和大小,但這會導致演示文稿跳轉。 在viewDid / WillLayoutSubviews中設置UITableView的位置和大小不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.