0

例如,在 iphone 联系人应用程序中,在添加地址单元格中,当用户在“street”文本字段中键入时,另一个带有占位符“street”的文本字段会添加到当前文本字段下方并带有动画,如何做到这一点?

4

4 回答 4

1

添加此代码:

- (BOOL) textFieldShouldReturn:(UITextField *)textField{
    CGRect frame = textField.frame;
    frame.origin.y = frame.origin.y + frame.size.height + 5;//5 is space between two teftFields
    UITextField *newTextField =[[UITextField alloc] initWithFrame:frame];
    textField.placeholder = @"street";
    [[textField superview] addSubview:newTextField];

    return YES;
}

对于动画事物,请尝试调整:

[UIView animateWithDuration:(NSTimeInterval)
                 animations:^{
                     
                 } completion:^(BOOL finished) {
                     
                 }];

干杯。

于 2013-05-20T06:49:14.810 回答
1

在您的 IBAction 方法中,创建文本字段,设置框架并添加到单元格:

CGRect  viewRect = CGRectMake(10, 10, 100, 100);

UITextfield *textView = [[UITextfield alloc] initWithFrame:viewRect];

[cell addSubview:textView];

要记住几件事:

tableView:cellForRowAtIndexPath:如果单元格 id 出列并且您不需要该字段,请确保删除 textView 。设置字段的标签有助于再次找到它。如果您确实需要该字段,则还需要在此方法中添加它。

您可能需要调整高度并报告正确的高度tableView:heightForRowAtIndexPath:

根据您正在执行的操作,您可能只想添加另一个单元格,insertRowsAtIndexPaths:withRowAnimation因为要管理的单元格状态会更少。如果您不小心,细胞状态会很快变得非常棘手。

于 2013-05-20T06:19:34.323 回答
0

您可以调用insertRowsAtIndexPaths:withRowAnimation:以添加带有动画的新行。在新行中,您指定带有占位符“street”的文本字段的单元格。

于 2013-05-20T06:10:41.897 回答
0

您可以使用添加新 UITextField 所需的代码创建 IBAction,然后在您的 xib 中,使用“退出时结束”将该操作与初始文本字段链接。这将允许您在用户按下返回时执行新方法。

于 2013-05-20T06:14:21.613 回答