您好 我有一个简单的问题,我不知道如何回答。 在我的应用程序中,我有UITableViewController与单元格。当我选择一个项目(单元格)时,它会变得突出,而在其他线程中,我正在加载数据块以显示给用户(在加载完成后,推送新的VC)。当使用线程用户仍然可以与应用程序交互时,返回到其他NavController,我确实希望这发生。我不想发生的是,当加载不完整时,用户可以选择表中的其他单元格,并且它会被高亮显示。我怎么能阻止它(只有高亮,我正在检查是否有一个先前的请求,所以我没有把另一个线程放在先前的请求上)。
基本上我的问题是,你怎么能禁止用户与表视图控制器交互?
答案 0 :(得分:2)
将selectionStyle
的{{1}}设置为UITableViewCell
。
答案 1 :(得分:1)
您可以使用以下内容检查是否可以选择行:
- (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];
答案 2 :(得分:0)
您的用户可能会感到困惑。一个亮点是不够的。应该有非常明确的视觉反馈,即网络操作正在进行,并且适用不同的规则。