0

我有一个 ViewController,许多 UITextFields(一个在另一个下面)和一个在第一个 UITextField 右侧的按钮。

按下按钮时,我希望在此下方显示另一个 UITextField(每次按下按钮时都会在另一个下创建一个文本字段)并将其他一些像素向下移动。

我怎样才能做到这一点?我想我必须用 InterfaceBuilder 制作一个新的 UIView,其中的文本字段会向下移动一些像素,但我不能这样做。

我的观点:

4

2 回答 2

1

使用 UITableViewController 怎么样?基本上,您可以将第一个 UITextField(在 UITableViewCell 内)和第二部分中的其余字段设置为第一部分。然后,每次按下按钮时,您都会在第一部分插入一个新单元格。

管理字段的插入和删除很容易,无需手动处理视图的移动(它们由 UITableView 自动处理),您所要做的就是更新数据源(单元格数)并重新加载/插入单元格(reloadData 或 insertRowsAtIndexPaths:withRowAnimation:)。

于 2013-11-11T13:17:18.120 回答
0

如果您愿意,我会建议一个非常简单的解决方案,即在 CGRectMake坐标中使用变量代替y坐标。

更详细一点:

您必须以编程方式创建所有 UITextField,并且每当您分配 initwithFrame 时,任何 UITextField 都使用如下变量:

int y = 10; // By default value and make it a property and define in viewDidLoad or wherever

UITextField *txtField1 = [[UITextField alloc]initWithFrame:CGRectMake(10, 20 +y, 100, 50)];
        // set TextFields other values
[self addSubview:txtField1];

UITextField *txtField1 = [[UITextField alloc]initWithFrame:CGRectMake(10, 80+y, 100, 50)];
        // set TextFields other values
[self addSubview:txtField1];

现在,每当您单击添加 UITextField 按钮时,将 y 的值增加您想要的额外空间,例如:

-(void)onTapAddTextFieldButton{
    y= y + 40;
}
于 2013-11-11T13:29:00.663 回答