如何在选择行时从单元格中删除UITextField?

时间:2012-10-19 09:48:30

标签: objective-c uitableview ios5

每当第一次选择UITextField的任何行时,我都会向单元格添加UITableView,现在我想在第二次选择行时删除该文本字段。

任何建议或示例代码将不胜感激。 谢谢!

在单元格中添加文本字段的代码:在 cellForAtIndexPath 方法

 if (indexPath.row == selectedRow)
            {

                  numOfBottles =[[UITextField alloc] initWithFrame:CGRectMake(240,9.0f,50, 25)];
                    numOfBottles.tag = indexPath.row;

                    [numOfBottles setBorderStyle:UITextBorderStyleNone];
                    [numOfBottles setBackgroundColor:[UIColor clearColor]];
                    [numOfBottles setTextColor:[UIColor whiteColor]];
                    [numOfBottles setTextAlignment:UITextAlignmentLeft];
                    [numOfBottles setBackground:[UIImage imageNamed:@"blue_dropdown_normal.png"]];
                    [numOfBottles setFont:[UIFont systemFontOfSize:16.0f]];
                    [numOfBottles setDelegate:self];

                    NSString* quantity = [[NSString alloc] initWithString:[subtotalObj.qtyArray objectAtIndex:(indexPath.row - 1)]];

                    [numOfBottles setText:quantity];
                    [numOfBottles setTextAlignment:UITextAlignmentCenter];
                    [numOfBottles setBackgroundColor:[UIColor whiteColor]];
                    numOfBottles.keyboardType = UIKeyboardTypeDefault;
                    numOfBottles.tag = indexPath.row;
                    [cell.contentView addSubview:numOfBottles];
                    [numOfBottles release];

            }
didSelectedRowAtIndexPath

中的

selectedRow = indexPath.row;
[mainTable reloadData];

3 个答案:

答案 0 :(得分:1)

通过为用于填充单元格的整数变量提供模型对象,可以轻松实现此目的。每次用户选择该单元格时,此变量都会增加1。

然后在 - tableView:didDeselectRowAtIndexPath:方法(或者在你的应用程序中调用它)你可以做出类似的东西:

if (selectedCellModel.selectCnt == 1) {
    //create the text field
} else if (selectedCellModel.selectCnt == 2) {
    //delete the text field
}

答案 1 :(得分:0)

为什么不隐藏它?

[yourTextField setHidden:YES];

或者,如果textField是tableview单元格的子视图,则只需删除它。

[yourTextField removeFromSuperview];

答案 2 :(得分:0)

我强烈建议您创建自己的UITableViewCell子类。 在这个类中添加这个UITextView对象,方法- (void)setSelected:(BOOL)selected animated:(BOOL)animated显示/隐藏你的textField。

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    [textField setHidden:!textField.hidden]; //this alternately show and hide textField
}