我有一个ViewController,很多UITextFields(另一个在另一个下面)和第一个UITextField右边的按钮。
当按下按钮时,我想在此下面显示另一个UITextField(每次我按下按钮时,将在另一个下面创建一个文本字段)并移动其他像素。
我该怎么做?我认为我必须使用InterfaceBuilder制作一个新的UIView,其中的文本字段会向下移动一些像素,但我不能这样做。
答案 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;
}