我在应用程序中创建了一个UITableView。我创建了一个名为UITableViewCell的自定义VideoCell,其中包含一个UIWebview,一个UIImageView和一个UILabel

UIWebView的大小与UIImageView相同,并且位于相同的位置,但在UIImageView后面。我想在点击单元格时隐藏UILabelUIIMageView,以便显示UIWebView

VideoCell在情节提要编辑器中设置了ReuseIdentifier,我用它从tableView:cellForRowAtIndexPath中将VideoCell出队:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"VideoCell";
    VideoCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    // Configure the cell...

    ...

    return cell;
}


我如何获得对我在tableView:didSelectRowAtIndexPath:中点击的实际单元格的引用,以便明显地更改属性?

我试过只是用相同的论点

VideoCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];


这会向我返回VideoCell,但未设置任何字段

我也曾尝试致电tableView:cellForRowAtIndexPath:

UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];


但这会返回我一个设置了正确字段的VideoCell的新实例,而这不是当前显示的实例。

最佳答案

VideoCell *cell = (VideoCell*)[tableView cellForRowAtIndexPath:indexPath];


不要调用ViewController中存在的数据源方法,请在您的UITableView的实际实例上调用该方法

10-07 14:33