0

我正在将应用程序更新到 iOS7/8,并应用自动布局功能。在我的UIViewController我有一些UIViews应该修改其位置作为UIScrollView更新它的contentOffset.

当我更新UIView's框架(旧方式)时,由于控制器自动布局约束(我使用 VFL 以编程方式设置约束,我没有情节提要),我会遇到一些小故障和错误。

UIViews所以问题是:在实现自动布局的控制器中移动的正确/最佳方式是什么?也许更新约束?我应该使用 Core Animation 进行任何UIView操作吗?

提前致谢!

4

2 回答 2

3

如果您在情节提要中设置了约束,则可以为需要更新的任何约束设置一个出口(就像您为任何视图所做的那样)。完成此操作后,您可以根据需要更新约束常量属性。

[self layoutIfNeeded];
topConstraint.constant += 200;
[UIView animateWithDuration:0.3 animations:^{
        [self layoutIfNeeded];
    }]; 

在上面的代码中,我正在更新视图的 topConstraint 并对更改进行动画处理。您需要[self layoutIfNeeded];在修改约束之前调用一次,然后在动画块中再次调用。

于 2015-04-06T09:06:46.857 回答
-1
self.yourView.translatesAutoresizingMaskIntoConstraints = YES;

然后只需更改框架:

CGRect rect = self.yourView.frame;
// move or change size
rect.origin.x = whatever...
self.yourView.frame = rect.
于 2015-04-06T09:04:04.060 回答