改变约束

时间:2017-08-03 10:50:26

标签: ios objective-c autolayout uistoryboard

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

我想创建一个按钮,它将更改所有按钮布局。为此,我需要更改所有按钮约束。

因此,例如,点击"更改按钮布局"所有按钮都会改变它们在视图上的位置,如x坐标+20和y坐标+20。

有一种简单的方法吗?或者我需要在代码中以编程方式更改所有约束,如果"更改按钮布局"单击按钮?

由于

4 个答案:

答案 0 :(得分:2)

您有几个选择:

  1. 如前所述,创建一个容器,您将以编程方式或通过故事板添加所有按钮,然后操纵容器,该容器将自动操作它的所有子容器。
  2. 您可以通过编程方式创建所有按钮,这可能是正确的方法。您可以将它们保存在某种数组或列表中,然后在for / foreach /任何其他循环中操作它们的属性。
  3. 我不完全确定你是否可以通过某种类型的getter从故事板中获取所有项目,以防你真的想要在故事板上创建所有按钮。有了这个getter,你就可以填充上面提到的数组并通过循环以相同的方式操作它。
  4. 执行此操作的最佳方法可能是创建容器并将所有按钮放入其中,然后操作容器。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

<强> SWIFT

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

目标C

myButton.transform = CGAffineTransformMakeTranslation(20, 20);

答案 3 :(得分:0)

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

self.button = [UIbutton buttonWithtype:UIbuttonTypeCustom];

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

// cgrect(0,50,100,100)在(0,50)创建按钮,宽度为100,高度为100 ..

self.button setTitle:@&#34; Button One&#34; forState:UIControlStateNormal; [self.view addsubView:self.button];