2013-04-16 109 views

回答

21

在代碼中,得到一個以有固定的左,伴隨着靈活的寬度右頁邊距,你可以做到以下幾點:

UIView *parentView = self.view; // adjust as needed 
CGRect bounds = parentView.bounds; // get bounds of parent view 
CGRect subviewFrame = CGRectInset(bounds, 20, 0); // left and right margin of 20 
UIView *subview = [[UIView alloc] initWithFrame:subviewFrame]; 
subview.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
[parentView addSubview:subview]; 

根據需要調整,以創建您的實際子視圖。調整subviewFrame以匹配您所需的邊距。

如回答,這將使您的子視圖固定每個20點和一個靈活的寬度左邊距和右邊距。設置autoresizingMask時,任何未設置爲靈活的組件都會自動修復(差不多)。這意味着頂部邊距和高度也是固定的(因爲它們沒有設置)。由於頂部邊距和高度是固定的,因此底部邊距變得非常靈活。由於顯而易見的原因,所有三個值都不能同時修正或增加/減少。

+0

似乎很棘手..!讓我試試這個 –

+0

一點都不棘手。其實很簡單。無論子視圖的邊距是多少,相對於其父視圖,在創建視圖時都是如此。而已。給子視圖一個靈活的寬度,你就完成了。 – rmaddy

+0

不是很棘手,只是在代碼中創建的UIView具有與IB中使用的默認值不同的默認值。這可能會導致一些混亂。 –

相關問題