繁体   English   中英

如何使用自动布局在控制器中移动UIViews

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM