我试图在UIActivityindicator
处设置didSelectRowAtIndexPath
的动画,即当选择行时,它应该开始动画,直到没有加载其他视图。我正在尝试代码,但它没有做任何事,帮助!!!
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self. indicator stopAnimating];
if(bdvController == nil)
bdvController = [[BookDetailViewController alloc] initWithNibName:@"BookDetailView" bundle:[NSBundle mainBundle]];
if(indexPath.section == 0)
{
Book *aBook = [appDelegate.books objectAtIndex:indexPath.row];
bdvController.aBook = aBook;
}
else if(indexPath.section == 1)
{
Book *aBook = [appDelegate.books objectAtIndex:indexPath.row+5*indexPath.section];
bdvController.aBook = aBook;
}
[self.navigationController pushViewController:bdvController animated:YES];
}
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.indicator startAnimating];
return indexPath;
}
答案 0 :(得分:1)
创建一个 NSThread 作为调用选择器,如下所示:
[NSThread detachNewThreadSelector:@selector(threadStartAnimating:)
toTarget:self
withObject:nil];
// Your code
[spinner stopAnimating];
[self.navigationcontroller pushviewcontroller:viewcontroller animated:YES];
threadStartAnimating:
-(void)threadStartAnimating:(id)data
{
[spinner startAnimating];
}
答案 1 :(得分:0)
首先 [self.indicator.startAnimating];你想在这条线上做什么?您是在访问一个属性还是在调用方法。 而且我认为它将等待didSelectRow方法完成以显示indiacator。也许你可以尝试在
中显示指标- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
并在
中进行处理- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
由于您尚未粘贴与指标创建相关的代码。希望您已将表格视图单元格的选择样式设置为UITableViewCellSelectionStyleNone,并且还为指标视图设置了适当的框架。