2

我是 iOS 应用程序开发的新手,我需要有关 UItableview 的帮助。当我用 json 数据填充表视图时。我也在使用自定义的 Tableviewcell。我没有在“lbluid”上获得选定单元格的“huid”值。“lluid”根据滚动显示“huid”的值,因为我将向上滚动它将显示 UITableview 最上面可见单元格的“huid”值,如果我向下滚动它将显示最后的“huid”值从下可见的细胞。

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableCell";
    SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil)  {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];;
    }

    NSUInteger row = [indexPath row];

    cell.lbl4.text = [hudid objectAtIndex:row];
    lbluid.text=cell.lbl4.text;
    return cell;
}

Simpletablecell是定制的UITableViewCell

4

2 回答 2

11

您可能必须实现该方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

每次选择一行时都会调用它,并且在该方法内部:

Simpletablecell *cell = (Simpletablecell *)[tableView cellForRowAtIndexPath:indexpath];
lbluid.text = cell.lbl4.text;

方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

称为表格视图正在加载要显示的单元格,这就是为什么您lbluid.text仅在滚动表格视图时才更改的原因。

于 2013-01-16T13:19:33.203 回答
1

在斯威夫特

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

       let cell = tableView.cellForRow(at: indexPath) as! NotesCell!
        let value = cell?.lblDetail.text
    }
于 2016-12-26T12:00:04.393 回答