2013-04-16 76 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中使用的默认值不同的默认值。这可能会导致一些混乱。 –

相关问题