我在应用程序中创建了一个UITableView
。我创建了一个名为UITableViewCell
的自定义VideoCell
,其中包含一个UIWebview
,一个UIImageView
和一个UILabel
。UIWebView
的大小与UIImageView
相同,并且位于相同的位置,但在UIImageView
后面。我想在点击单元格时隐藏UILabel
和UIIMageView
,以便显示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
的实际实例上调用该方法