如何从自定义 UITableview 中检索选择单元格的数据

发布于 2024-12-28 14:09:58 字数 722 浏览 2 评论 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;

Might be a stupid question.

I have a UITableview, with multiple cells. In each cell I am displaying some data. I am not using cell's text property to display data. Instead I have a custom label inside my cell, which is displaying the text.
My question is:
When I click on the cell, I need to retrieve the data from the cell. How can I do this.

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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

明媚如初 2025-01-04 14:09:58

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

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

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

In your didSelectRowAtIndexPath method, you may do it as follows:

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

Now you can retrieve the data in the cell's UILabel using textLabel.text

往昔成烟 2025-01-04 14:09:58

您可以在 didSelectRowAtIndexPath: 中访问该标签,

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

但可能值得一问,为什么要添加子标签而不是使用 textLabel 属性?你可以修改它的框架、设置等,然后你不必担心标签,因为这个属性默认在 UITableViewCell 中公开

You could get access to that label in didSelectRowAtIndexPath: with

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

But probably worth asking, why are you adding a sub label instead of using the textLabel property? you can modify its frame, settings etc and then you don't have to worry about tags, since this property is exposed in UITableViewCell by default

小姐丶请自重 2025-01-04 14:09:58

-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.
}

In the -tableView:didSelectRowAtIndexPath: method, you can get the data from your tableView's array:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    id objectForCell = [self.myArray objectAtIndex:indexPath.row];
    //do what you want with the above data.
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文