在TableViewCell中添加不同的Textfield,并在不同的Cell上放置不同的值

时间:2017-01-05 05:04:30

标签: ios objective-c uitableview

enter image description here 我可以在tableViewCell中添加Seven textfield,并使用storyboard设置不同的标签值。当在第一个单元格文本字段中输入值时,这些值可以在tableview其他单元格上显示。但我可以在不同的单元格文本区域输入不同的值。我可以像excel表一样使用tableview。 使用故事板由所有文本字段设置的标记值,需要通过编程设置标记值吗?

代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableViews{
    // Return the number of sections.
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    // Return the number of rows in the section.
    return 100;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSString *cellIdentifier = @"cell";
    UITableViewCell *cell = [_dairyTable dequeueReusableCellWithIdentifier:cellIdentifier];
    [cell setSeparatorInset:UIEdgeInsetsZero];
    tableView.allowsSelection=NO;

  UITextField *textFieldName = (UITextField *) [cell viewWithTag:indexPath.row+100];
    NSString *text = [textFieldName text];
    NSLog(@"%@",text);

//    UITextField *textFieldworkLocation = (UITextField *) [cell viewWithTag:2];
//    UITextField *textFieldPrice = (UITextField *) [cell viewWithTag:3];
//    UITextField *textFieldMeasuredWork = (UITextField *) [cell viewWithTag:4];
//    UITextField *textFieldOwnSnags = (UITextField *) [cell viewWithTag:5];
//    UITextField *textFieldRework = (UITextField *) [cell viewWithTag:6];
//    UITextField *textFieldOthers = (UITextField *) [cell viewWithTag:7];
    return cell;
}
-(void)textFieldDidEndEditing:(UITextField *)textField
{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:([textField tag]-100) inSection:0];
    UITableViewCell *Cell = [_dairyTable cellForRowAtIndexPath:indexPath];
    NSLog(@"%@",Cell);
}

2 个答案:

答案 0 :(得分:1)

正如您从storyboard看到的那样,UITextField只有1 reuseCell property,而您的单元格是由tag生成的,所以如果您从storyboard提供UITextField,那么每个tag都有相同的Tag,您永远不会区分它们。因此,请在cellForRow中的运行时提供//and if you creating UITextfield in `uiTableView` then you have to create new custom `UITableViewcell` cell.textField.tag = indexpath.row ,如下所示:

UITextField

如何处理UITextField价值

  1. 首先,您必须创建可变数组,其计数等于arrDataText = ["","",... so on]的数量。

  2. 最初,数组将每个数据都清空。 (像这样分配UITextField)。

  3. 每个字符更改时,以相同的顺序保存数组中的每个textdidChange值。因此,请使用UITextField。{/ p>

  4. cellForRow委托方法代码
  5. 每当用户输入或编辑文本时,您都会在字典中获取该文本。

  6. 现在在cell.textfiled.text = arrDataText[index.row]添加以下行:
  7. UIColor

答案 1 :(得分:0)

使用属性"标记"

UITextField *textFieldName = [UITextField new];
textFieldName.tag = indexPath.row;