我在这个问题上需要一些帮助:
在该行的音频播放完毕后,从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];
}
答案 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的帮助下删除该行 答案。