Xcode约束?

时间:2013-04-23 15:55:06

标签: objective-c xcode constraints

我正在尝试理解并使用Xcode的约束功能。如果你是一些观点,我可以看到它是如何真正有用的,因为你可以真正指定每个观点应该如何对齐。

然而,如果你有很多观点,这将成为一项繁琐的工作,特别是如果你开始以编程方式搞乱它们(比如移动它们)。例如下图:

The view

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

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

感谢提前!

1 个答案:

答案 0 :(得分:0)

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

来更新它们
[self.heightConstraint setConstant:newValue];

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

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

我真的不知道您的应用程序的详细信息,但是如果您从视角如何相互关联的角度考虑约束,那么移动它们可能不会那么困难。

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

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

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

相关问题