调整UIViews的大小

mir*_*ire 15 iphone cocoa-touch

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

view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height - 100);
Run Code Online (Sandbox Code Playgroud)

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

Avi*_*Dov 25

如果你想要-=100效果,只需:

CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
Run Code Online (Sandbox Code Playgroud)

那么你可以肯定你正在改变你想要改变的东西......

除此之外,我认为没有办法......


dme*_*edi 10

没有可以直接操纵高度的属性.

请注意,每次调用view.frame时,它都会调用该方法,因此您的代码与以下内容完全相同:

view.frame = CGRectMake([view frame].origin.x, [view frame].origin.y, [view frame].size.width, [view frame].size.height - 100);
Run Code Online (Sandbox Code Playgroud)

请考虑在单独的变量中调整框架:

CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
Run Code Online (Sandbox Code Playgroud)

  • 我说不是真的,这有一点细节,但Aviad有一个更酷的图标. (9认同)