2009-08-17 44 views
15

如果我需要调整大小或重新定位UIView,有没有更好的方法来做到这一点比以下?调整UIViews的大小

view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height - 100); 

或者换句话说,是有办法,只是说view.frame.size.height - = 100通过非只读属性?

回答

25

如果你想-=100效果,只是做:

CGRect frame = view.frame; 
frame.size.height -= 100; 
view.frame = frame; 

然后你可以肯定你改变正是你想改变,太多的..

除此之外,我不不认为有一种方法..

10

没有一个属性来直接操纵高度。

注意,每次通话时间view.frame它调用的方法,那么你的代码equivilent到:

view.frame = CGRectMake([view frame].origin.x, [view frame].origin.y, [view frame].size.width, [view frame].size.height - 100); 

考虑,而不是调整框架中一个单独的变量:

CGRect frame = view.frame; 
frame.size.height -= 100; 
view.frame = frame; 
+1

这是一个比当前标记正确的答案好得多的答案。 – hatfinch 2009-08-17 20:45:20

+9

我说的并不是真的,这有更多的细节,但Aviad有一个更酷的图标。 – 2009-08-17 23:08:01