[英]UITableViewController not highlighting cell when it's selected
嗨,我有一个简单的问题,我不知道该怎么回答。 在我的应用程序中,我有带有单元格的UITableViewController。 当我选择一个项目(单元格)时,它变得亮了,而在其他线程中,我正在加载要显示给用户的数据块(加载完成后,将推送新的VC)。 使用线程执行操作时,用户仍然可以与应用程序进行交互,例如回到其他NavController,我确实希望这种情况发生。 我不希望发生的是,当加载未完成时,用户可以选择表中的其他单元格,并且该单元格会升高。 我如何防止这种情况发生(仅高亮显示,我正在检查是否有先前的请求,因此在完成先前的请求之前,我不会放置其他线程)。
因此,基本上我的问题是,如何禁止用户与表视图控制器进行交互?
将UITableViewCell
的selectionStyle
设置为UITableViewCellSelectionStyleNone
。
您可以使用以下命令检查是否可以选择行:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (rowSelected) {
return nil;
}
return indexPath;
}
因此,仅当未选择任何行时才选择它。 在您的didSelectRowAtIndexPath方法中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
rowSelected = YES;
// call method that is going to do something and mark rowSelected = NO;
}
您可以使用取消选择该行
[[tableView cellForRowAtIndexPath:indexPath] setSelected:NO animated:YES];
您的用户可能会感到困惑。 突出显示还不够。 应该有非常清晰的视觉反馈,表明网络正在运行并且适用不同的规则。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.