2013-04-23 103 views
1

我想了解和使用Xcode的约束功能。我可以看到,如果你是一些观点,它是如何真正有用的,因为你可以真正地指定每个人应该如何对齐自己。但是,如果你有很多观点,这将变成一项单调乏味的工作,尤其是如果你以编程方式开始搞乱它们(比如移动它们)。例如下面的图片:Xcode约束?

The view

我希望它看起来像这样的时候我扩大和缩小画面,但很可惜,事实并非如此。此外,由于他们不断调整为彼此相邻,如果我以编程方式移动其中一个(如我在制作游戏),另一个会无意中随之移动。

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

在此先感谢!

回答

0

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

[self.heightConstraint setConstant:newValue]; 

然后你需要调用[self layoutIfNeeded],可能是在一个动画块,看到更新后的变化进行更新限制:

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

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

另一个想法是在UIView子类中将视图组合在一起。也许像RowView那样具有3个图像并且仅为那些处理约束。

我的意思是像“分而治之”,不是在一个视图中处理所有约束,而是将它们组合在一起,这对您的应用程序来说是合理的。

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