我正在尝试理解并使用Xcode的约束功能。如果你是一些观点,我可以看到它是如何真正有用的,因为你可以真正指定每个观点应该如何对齐。
然而,如果你有很多观点,这将成为一项繁琐的工作,特别是如果你开始以编程方式搞乱它们(比如移动它们)。例如下图:
当我扩展和缩小屏幕时,我希望它看起来像这样,但唉,事实并非如此。此外,由于他们不断调整以便彼此相邻,如果我以编程方式移动一个(就像我正在制作一个游戏),另一个会无意中移动它。
所以基本上,当我在屏幕上显示相当多的视图对象并在代码中移动时,我应该如何使用约束?任何提示都非常感谢! (是的,我尝试一次为每个视图添加/删除约束,首先,这是一项繁琐的任务,其次,它不断为视图添加约束以使它们彼此对齐,而你很少想要在你移动它们的游戏中。)
感谢提前!
答案 0 :(得分:0)
您可以尝试更新约束,而不是一直删除和添加它们。
您可以为需要更改的所有约束创建IBOutlets
,然后您可以通过更改constant
值
[self.heightConstraint setConstant:newValue];
然后你需要调用[self layoutIfNeeded]
,可能在动画块中,在更新约束后查看更改:
[UIView animateWithDuration:0.5 animations:^{
[self layoutIfNeeded];
}];
我真的不知道您的应用程序的详细信息,但是如果您从视角如何相互关联的角度考虑约束,那么移动它们可能不会那么困难。
另一个想法是在UIView
子类中将视图组合在一起。也许像RowView
这样的东西有3个图像,只处理那些约束。
我的意思是“分而治之”,不是在一个视图中处理所有约束,而是将它们组合在一起,以适合您应用的方式。
希望这有帮助!祝你的项目好运。