Ios 改变约束

Ios 改变约束,ios,objective-c,autolayout,uistoryboard,Ios,Objective C,Autolayout,Uistoryboard,我正在创建一个有很多按钮的应用程序。我已经在视图上放置了所有必需的按钮,并且设置了所有约束。一切都在故事板中完成 我想创建一个按钮,它将改变所有按钮的布局。为了做到这一点,我需要更改所有按钮约束 因此,例如,单击“更改按钮布局”后,所有按钮将在视图上更改其位置,如x坐标+20和y坐标+20 有没有一个简单的方法可以做到这一点?或者,如果单击“更改按钮布局”按钮,我需要以编程方式更改代码中的所有约束 谢谢为所有按钮创建一个容器,并管理容器的约束。正如antonsergeev88建议的那样,您应该创

我正在创建一个有很多按钮的应用程序。我已经在视图上放置了所有必需的按钮,并且设置了所有约束。一切都在故事板中完成

我想创建一个按钮,它将改变所有按钮的布局。为了做到这一点,我需要更改所有按钮约束

因此,例如,单击“更改按钮布局”后,所有按钮将在视图上更改其位置,如x坐标+20和y坐标+20

有没有一个简单的方法可以做到这一点?或者,如果单击“更改按钮布局”按钮,我需要以编程方式更改代码中的所有约束


谢谢

为所有按钮创建一个容器,并管理容器的约束。

正如antonsergeev88建议的那样,您应该创建一个容器并管理其约束。但如果您想按特定值移动每个按钮,可以使用CGAffineTransform

SWIFT

myButton.transform = CGAffineTransform(translationX: 20, y: 20)
目标C

myButton.transform = CGAffineTransformMakeTranslation(20, 20);

尝试以编程方式创建按钮 目标-C //节目

self.button=[UIbutton buttonWithtype:UIbuttonTypeCustom]

self.button.frame=cgrectMake(x轴值、y轴值、宽度、高度)

//cgrect(0,50100100)在(0,50)处创建宽度为100、高度为100的按钮。

self.button setTitle:@“button One”表示状态:uicontrol状态正常;
[self.view addsubView:self.button]

您有几个选择:

  • 如前所述,创建一个容器,通过编程或故事板将所有按钮添加到该容器中,然后操纵该容器,该容器将自动操纵其所有子级
  • 您可以通过编程方式创建所有按钮,这可能是正确的方法。您可以将它们都保存在某种数组或列表中,然后在for/foreach/任何其他循环中操作它们的属性
  • 我不完全确定是否可以通过某种类型的getter从故事板获取所有项目,以防您确实需要在故事板上创建所有按钮。使用这个getter,您可以填充前面提到的数组,并通过循环以相同的方式对其进行操作

  • 最好的方法可能是创建一个容器,将所有按钮放在其中,然后操作容器。

    如果您能发布一个示例代码,说明如何操作,我将不胜感激。提前谢谢。您对按钮的约束是否相互依赖?不,它们不依赖。它们与中心x和y对齐,并为每个按钮提供乘数,以将每个按钮放置在正确的位置。如果只需要移动容器中的一个子项,则始终可以访问该子项。您是否遗漏了评论的一部分?容器是指所有按钮都将位于的新视图还是类似IBCollection的视图?这取决于您采取的方法。它要么是一个包装所有子对象(按钮)的新视图,要么如果您希望以编程方式执行此操作,它将是某种类型的集合(您喜欢的任何一种),仍然必须将其转换为view+children格式才能添加到接口中。你应该详细阐述一下你想要实现的目标。一个用例会有所帮助。