在另一个函数之前调用UITableView重载函数

时间:2016-12-06 13:23:05

标签: ios objective-c iphone uitableview

-(void)didTapAudioButton:(UIButton*)sender {
   [tableView reloadData];
   UIButton* senderButton = (UIButton*)sender;
   NSUInteger index = sender.tag;
   NSString *audioFilePath = @"someAudioFilePath.mp3";// I didn't add the original audiofile path for security reasons
   NSData *_objectData = [NSData dataWithContentsOfURL:[NSURL URLWithString:audioFilePath]];
   NSError *error;
   audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData error:&error];
   audioPlayer.delegate = self;
   audioPlayer.numberOfLoops = 0;
    if (audioPlayer == nil)
       {
           NSLog([error description]);
       }
       else
       {
           [audioPlayer play];
       }
  }

我正在使用此功能在URL字符串路径上点击按钮播放音频文件。音频播放正常,但问题是在此函数结束时调用了[tableView reloadData]函数。我希望tableView重新加载拳头,然后转到下一行,即 UIButton * senderButton =(UIButton *)发件人; 有人能告诉我如何在播放音频之前重新加载tableview吗?任何形式的帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

我使用以下一行:

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES];
[self.tableView layoutIfNeeded];

它会等到方法完成。