Iphone 如何使用selectRowAtIndexPath强制UITableViewCell选择?
我试图使用SelectRowatineXpath强制选择(突出显示)UITableViewCell 例如, 假设我希望始终突出显示表视图中的第一个单元格,我将在ViewDidDisplay中应用以下逻辑Iphone 如何使用selectRowAtIndexPath强制UITableViewCell选择?,iphone,objective-c,ios,uitableview,Iphone,Objective C,Ios,Uitableview,我试图使用SelectRowatineXpath强制选择(突出显示)UITableViewCell 例如, 假设我希望始终突出显示表视图中的第一个单元格,我将在ViewDidDisplay中应用以下逻辑 [self.tableViewPrompts selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:0]; 很好地工作。但是当我尝试在应用程序的其他地方应用相同的逻
[self.tableViewPrompts selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:0];
很好地工作。但是当我尝试在应用程序的其他地方应用相同的逻辑时,单元格没有被选中。我甚至尝试在调用上述方法之前取消选择其他单元格,并在调用此方法之前和之后重新加载tableview,但这些方法似乎都不起作用
我甚至使用tableview的委托强制调用didSelectRowAtIndexPath.Event,但这不起作用
PS:单元格的选择不会触发任何操作,我只是想突出显示所需的单元格
我做错了什么
非常感谢您的帮助 我很困惑,你的情况为什么不起作用。这是我在视图控制器中的几个地方使用的方法,包括
viewdideappear
,我看不出与您所做的有什么真正的区别:
- (void)selectRow1
{
NSIndexPath* idx = [NSIndexPath indexPathForRow:1 inSection:0];
[_table selectRowAtIndexPath:idx animated:NO scrollPosition:UITableViewScrollPositionMiddle];
[self tableView:_table didSelectRowAtIndexPath:idx];
}
\u table
是我的table属性变量,调用didSelectRowAtIndexPath
可以进行选择操作,但除此之外,代码的唯一真正区别是scrollPosition参数
单元格的选择不会触发任何操作,我要做的就是突出显示所需的单元格
为什么不使用单元格的高亮显示属性
UITableViewCell *cell = [self cellForRowAtIndexPath: [NSIndexPath indexPathForRow: 0 inSection: 0]];
cell.highlighted = YES;
现在无法测试它,但它应该可以工作
编辑
当然,更好的方法是:改变你的cellForRowAtIndexPath来实现这一点
-(UITableViewCell) tableView:cellForRowAtIndexPath:
//...
if (indexPath.row == 0 && indexPath.section == 0) cell.highlighted = YES
else cell.highlighted = NO;
//...
return cell;
只需使用setSelected高亮显示单元格:
[cell setSelected:YES];
我创建此扩展的全部目的这正是我所需要的。您可能会认为selectRowAtIndexPath会为您这样做…:PBe警告说,仅设置单元格的
突出显示的
属性不会使单元格从父表视图的角度“选中”。它只是改变了细胞的外观。如果这就是您想要的,那么这就好了。在2013年的这个问题中,OP表示“我所要做的就是突出显示所需的单元格”-因此应该很清楚我有这个问题,当我发现UITableView属性检查器显示“Selection”以某种方式设置为“none”时,修复了它。当设置为“Single Selection”时,它起作用。请确保在选择Rowatindexpath后没有调用reloadData。