如果添加了新的UITextField,如何向下移动许多UITextField

时间:2013-11-11 13:10:44

标签: ios uiview uitextfield

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

当按下按钮时,我想在此下面显示另一个UITextField(每次我按下按钮时,将在另一个下面创建一个文本字段)并移动其他像素。

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

MyView:

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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;
}