繁体   English   中英

如何突出显示UITableView中的行

[英]How to highlight a row in a UITableView

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

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


   return cell;
}

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

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

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

 [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

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

第一次initialized包含所述tableView的视图控制器时,最早应该调用此方法的是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];
}

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

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

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

通常有效

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

(通过在界面构建器检查器窗口中选择表视图控制器并将“视图”的插座拖动到要在其中进行选择的表视图来指定视图)。

- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath {
   return YES;
}

- (void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath {
  // do something here
}

尝试这个 :)

您可以使用

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


   return cell;
}

你有两个选择。 使用表视图的选择:

[tableView selectRowAtIndexPath: indexPath animated: YES scrollPosition: UITableViewScrollPositionNone];

或者在表视图委托中更改表格单元格的背景颜色:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM