簡體   English   中英

如何設置子視圖的框架

[英]How to set a subview's frame

我在UIViewController下有一個視圖層次結構,該視圖層次結構由一個主視圖和該主視圖的幾個子視圖組成,所有這些子視圖都在情節提要中定義,並且都使用IBOutlet連接。

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

我試過在viewDidLoadviewWillAppear設置它們。 兩種視圖均無效,並且在調用時,主視圖具有有效的幀值,但子視圖均具有(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM