【问题标题】:Xcode constraints?Xcode 约束?
【发布时间】:2013-04-16 22:32:07
【问题描述】:

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

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

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

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

提前感谢!

【问题讨论】:

    标签: objective-c xcode constraints


    【解决方案1】:

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

    [self.heightConstraint setConstant:newValue];
    

    然后你需要调用[self layoutIfNeeded],可能在一个动画块中,以查看更新约束后的变化:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 2016-01-14
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多