我有一个UITableView,当单击一个单元格时它会从互联网上获取数据,它会显示UIActivity Indicator,然后推送到Detail View控制器。当我点击后面单击的UITableView单元格有一个灰色背景,单元格内容不再存在。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ static NSString * CellIdentifier = @" TableCell&#34 ;; TabelCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
_activityIndicatorCell = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
// Get center of cell (vertically)
int center = [cell frame].size.height / 2;
int width = [cell frame].size.width / 1.1;
// Locate spinner in the center of the cell at end of text
[ _activityIndicatorCell setFrame:CGRectMake(width ,center - 9, 16, 16)];
[_activityIndicatorCell setHidden:YES];
[[cell contentView] addSubview:_activityIndicatorCell];
[ _activityIndicatorCell startAnimating];
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
}
然后我添加了这段代码来移除UIActivityIndicator,但是我点击的单元格周围仍然有一个灰色的框,我的UILabel内容已经不存在了。
- (void)viewWillAppear:(BOOL)animated {
[ _activityIndicatorCell stopAnimating];
[ _activityIndicatorCell hidesWhenStopped];
[self retrieveData];
}
我还在retrieveData方法中重新加载tableview。
为什么这不起作用的任何想法?
如果我从" numberOfRowsInSection"添加单元格数据它的工作方法,但这是正确的吗?
即使我跑了,小区仍保持灰色并且不会取消选择:
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
答案 0 :(得分:0)
将此添加到did select方法解决了问题:
[cell setSelected:NO animated:YES];