在audioplayer完成后从tableview中删除行

时间:2014-05-06 08:34:35

标签: ios xcode

我在这个问题上需要一些帮助:

在该行的音频播放完毕后,从UITableView删除一行。

我有一些带有一些单元格的UITableView。每个细胞都有独特的声音。如果选择一行,则播放单元格的音频。

我想在音频播放完毕后删除所选的行。

在这里,您可以看到音频播放完毕的时间。

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Done" 
                                                message:@"Player finish." 
                                                delegate:nil 
                                                cancelButtonTitle:@"OK" 
                                                otherButtonTitles:nil];
[alert show];

}

4 个答案:

答案 0 :(得分:0)

只需从数据源数组中删除该条目并执行

[self.tableView reloadData];

答案 1 :(得分:0)

在方法audioPlayerDidFinishPlaying中,只需从UITableView的数据源中删除数据并重新加载tableView。

希望这有帮助。

答案 2 :(得分:0)

将要删除的行存储到实例变量中(例如_rowToDelete),然后使用[UITableView deleteRowsAtIndexPaths:withRowAnimation]方法从表视图中删除该行。

您必须确保在数据源之前将其从中删除,并将其从表格视图中删除。

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player
                       successfully:(BOOL)flag
{
    [self.myTableData removeObjectAtIndex:_rowToDelete];
    NSArray *indexPaths = @[ [NSIndexPath indexPathWithIndex:_rowToDelete] ];
    [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:indexPaths
                          withRowAnimation:UITableViewRowAnimationRight];
    [self endUpdates];
}

答案 3 :(得分:0)

  

首先使用观察者模式,即NSObserver并添加对象   观察者中的音频播放器。它可以帮助您跟踪音频播放器的时间   停止。之后,您可以在@trojanfoe的帮助下删除该行   答案。