如果我需要调整大小或重新定位UIView,有没有比下面更好的方法呢?
view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height - 100);
或者换句话说,有没有办法通过非readonly属性说view.frame.size.height - = 100?
答案 0 :(得分:25)
如果您想要-=100
效果,请执行以下操作:
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
然后你可以确定你正在改变你想要改变的东西......
除此之外,我认为没有办法......
答案 1 :(得分: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;
答案 2 :(得分:3)
使用此UIView+position
类别可以方便地访问框架成员: