[英]How to move UIViews in a controller using autolayout
我正在将应用程序更新为iOS7 / 8,并应用自动版式功能。 在我的UIViewController
我有一些UIViews
,当UIScrollView
更新其contentOffset
其位置应修改。
当我更新UIView's
框架(旧方法)时,由于控制器的自动布局约束而出现一些故障和错误(我正在使用VFL以编程方式设置约束,但没有故事板)。
所以,问题是:这是将正确的/最佳途径UIViews
在实现自动布局控制器? 也许更新约束? 我应该使用Core Animation来移动UIView
吗?
提前致谢!
如果在情节提要中设置了约束,则可以为需要更新的任何约束设置出口(就像对任何视图所做的一样)。 完成后,可以根据需要更新约束常量属性。
[self layoutIfNeeded];
topConstraint.constant += 200;
[UIView animateWithDuration:0.3 animations:^{
[self layoutIfNeeded];
}];
在上面的代码中,我正在更新topConstraint以获取视图并为更改添加动画效果。 您需要调用[self layoutIfNeeded];
一次在修改约束之前,再次在动画块中。
self.yourView.translatesAutoresizingMaskIntoConstraints = YES;
然后只需更改框架:
CGRect rect = self.yourView.frame;
// move or change size
rect.origin.x = whatever...
self.yourView.frame = rect.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.