3

我正在开发一个 iPad 应用程序。在主屏幕上有 6 个在 IB 中创建的按钮。我想从代码中动态排列它们,但我不能。已经尝试设置对象的框架/中心,但它们没有移动。

我有一个包含按钮插座的数组,并将它们排列在一个 for 循环中。有什么建议吗?

谢谢!

编辑:

这是一些代码(不是全部,但其余的现在无关紧要),我如何遍历按钮。按钮插座已正确设置。按钮的标题正确更改,我也可以隐藏/显示按钮,但不能隐藏/显示位置。

如果我只是尝试一些虚拟代码,例如: tempBtn.frame = CGRectMake(100.0, 200.0, 60.0, 40.0); 没有任何变化(但我怀疑所有 6 个按钮都应该在同一位置)

// I have this array, which contains the button outlets

tAddBtnArray = [NSArray ArrayWithObjects:tAddBtn1,tAddBtn2,tAddBtn3,tAddBtn4,tAddBtn5,tAddBtn6, nil];

//I loop through the array, set button title, and trying to change the y position
 for(int i=0;i<6;i++){
        UIButton *tempBtn = [tAddBtnArray objectAtIndex:i];
        [tempField setText:@"Set some title"];
  } 
4

2 回答 2

4

您可以通过这种方式以编程方式添加 uibbutons:

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
           action:@selector(yourMethod:)
 forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Jesus Gil y Gil" forState:UIControlStateNormal];
button.frame = CGRectMake(100.0, 200.0, 60.0, 40.0);
[view addSubview:button];
于 2012-10-18T15:08:18.577 回答
2

我打赌我知道它是什么。您是否在 xib 文件上启用了自动布局?如果是这样,则正在设置框架,然后正在评估约束,这会将按钮移回分配它们的位置。

你有两个选择:

  1. 关闭自动布局,以便您可以自己管理框架。
  2. 保持自动布局打开,但更新约束和框架。

我建议关闭自动布局,但我并不是特别喜欢它,所以这只是一种偏好。

于 2012-10-18T17:53:57.860 回答