0

可能是个愚蠢的问题。

我有一个 UITableview,有多个单元格。在每个单元格中,我都显示了一些数据。我没有使用单元格的文本属性来显示数据。相反,我的单元格中有一个自定义标签,用于显示文本。我的问题是:当我点击单元格时,我需要从单元格中检索数据。我怎样才能做到这一点。

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];


    UILabel *CellTextlabel = [[UILabel alloc] init];
    CellTextlabel.tag = 222;
    [CellTextlabel setFrame:CGRectMake(40, 5, 200, 20)];
    [cell.contentView addSubview:CellTextlabel];
    [CellTextlabel release];
  }


UILabel *editCellTextlabel = (UILabel *)[cell.contentView viewWithTag:222];
editCellTextlabel.font = [UIFont boldSystemFontOfSize:18];
editCellTextlabel.text = contact.lastName;
4

3 回答 3

2

在您的 didSelectRowAtIndexPath 方法中,您可以执行以下操作:

UITableViewCell *cell = (UITableViewCell *)[self.tableViecellForRowAtIndexPath:indexPath];         
UILabel *textLabel = (UILabel *)[cell viewWithTag:222];

现在您可以使用 textLabel.text 检索单元格的 UILabel 中的数据

于 2012-01-21T14:29:14.520 回答
1

在该-tableView:didSelectRowAtIndexPath:方法中,您可以从 tableView 的数组中获取数据:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    id objectForCell = [self.myArray objectAtIndex:indexPath.row];
    //do what you want with the above data.
}
于 2012-01-21T14:19:26.503 回答
1

您可以访问该didSelectRowAtIndexPath:标签

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UILabel *myLabel = [cell.contentView viewWithTag:222];

但可能值得一问,为什么要添加子标签而不是使用textLabel属性?您可以修改其框架、设置等,然后您不必担心标签,因为UITableViewCell默认情况下会公开此属性

于 2012-01-21T14:22:23.767 回答