可能是一个愚蠢的问题。
我有一个UITableview,有多个单元格。在每个单元格中,我显示一些数据。我没有使用cell的text属性来显示数据。相反,我的单元格中有一个自定义标签,显示文本。 我的问题是: 当我单击单元格时,我需要从单元格中检索数据。我怎么能这样做。
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;
答案 0 :(得分:2)
在didSelectRowAtIndexPath方法中,您可以按如下方式执行此操作:
UITableViewCell *cell = (UITableViewCell *)[self.tableViecellForRowAtIndexPath:indexPath];
UILabel *textLabel = (UILabel *)[cell viewWithTag:222];
现在,您可以使用textLabel.text检索单元格的UILabel中的数据
答案 1 :(得分: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.
}
答案 2 :(得分:1)
您可以使用
访问didSelectRowAtIndexPath:
中的该标签
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UILabel *myLabel = [cell.contentView viewWithTag:222];
但是可能值得一提,为什么要添加子标签而不是使用textLabel
属性?您可以修改其框架,设置等,然后您不必担心标签,因为此属性默认情况下在UITableViewCell
中公开