1

我正在尝试理解和使用 Xcode 的约束功能。如果您有几个视图,我可以看到它是如何真正有用的,因为您可以真正指定每个视图应该如何对齐。

但是,如果您有很多视图,这将成为一项乏味的任务,尤其是如果您开始以编程方式处理它们(例如移动它们)。例如下图:

风景

当我扩大和缩小屏幕时,我希望它看起来像这样,但唉,事实并非如此。此外,由于它们不断对齐以彼此相邻,因此如果我以编程方式移动一个(就像我正在制作游戏一样),另一个会无意中随之移动。

所以基本上,当在屏幕上显示相当多的视图对象+在代码中移动它们时,我到底应该如何处理约束?非常感谢任何提示!(是的,我尝试一次为每个视图添加/删除约束,首先,这是一项乏味的任务,其次,它不断为视图添加约束以使它们彼此对齐,而你很少想要那个在你移动它们的游戏中)。

提前感谢!

4

1 回答 1

0

您可以尝试更新约束,而不是一直删除和添加它们。您可以创建IBOutlets所有需要更改的约束,然后可以通过更改constant值来更新它们

[self.heightConstraint setConstant:newValue];

然后,您可能需要在动画块中调用[self layoutIfNeeded],以查看更新约束后的更改:

[UIView animateWithDuration:0.5 animations:^{
    [self layoutIfNeeded];
}];

我真的不知道你的应用程序的细节,但也许如果你从视图如何相互关联的角度考虑约束,也许移动它们不会那么困难。

另一个想法是将视图组合在一个UIView子类中。也许像RowView这样的东西有 3 个图像并只为这些图像处理约束。

我的意思是类似于“分而治之”,不是在一个视图中处理所有约束,而是将它们组合在一起,以一种对您的应用程序有意义的方式。

希望这可以帮助!祝你的项目好运。

于 2015-03-09T14:19:57.497 回答