调整UIView的大小

15

如果我需要调整或重新定位一个UIView,有没有比下面更好的方法?

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?
3个回答

25

如果你想要实现-=100的效果,只需要这样做:

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

那么你就可以确定你正在改变确切的内容。

除此之外,我认为没有其他方法了。


10

没有直接操作高度的属性。

请注意,每次调用view.frame时都会调用该方法,因此您的代码等效于:

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
9
我觉得不完全是,这里有一些更详细的内容,但Aviad有一个更酷的图标。 - Kendall Helmstetter Gelner

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接