如何突出显示UITableView中的行

The*_*ner 11 iphone cocoa-touch objective-c uitableview

下面的代码似乎没有任何效果.我希望它以与点击一行时突出显示的方式相同

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
   ...
   [cell.textLabel setHighlighted:YES];


   return cell;
}
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 27

该生产线将为您重新粉刷细胞,标签和配件:

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
Run Code Online (Sandbox Code Playgroud)


JRG*_*per 21

正如其他人所说,您可以使用此方法以编程方式选择单元格:

 [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
Run Code Online (Sandbox Code Playgroud)

但是,您应该注意不要太快调用此方法.

包含所述视图控制器的第一次tableViewinitialized,最早应该调用此方法的是viewDidAppear:.

所以,你应该做这样的事情:

- (void)viewDidAppear:(BOOL)animated
{
   NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; // set to whatever you want to be selected first 
   [tableView selectRowAtIndexPath:indexPath animated:NO  scrollPosition:UITableViewScrollPositionNone];
}
Run Code Online (Sandbox Code Playgroud)

如果您尝试将此调用放入viewDidLoad,viewWillAppear:或任何其他早期视图生命周期调用,它可能无法工作或具有奇怪的结果(例如滚动到正确的位置但不选择单元格).


小智 15

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection: 0];

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
Run Code Online (Sandbox Code Playgroud)

通常有效

如果使用界面构建器来构建界面,则需要检查的是您指定了表视图控制器的视图.如果您实际上没有指定视图,则此选择消息可能无处可寻.

(您指定通过选择界面生成器检查窗口表视图控制器和拖动出口的"视图"给你想要做的选择表格视图中的视图).