每当第一次选择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];
答案 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
}