2014-05-06 46 views
1

后,我需要一些帮助在此问题:删除行audioplayer完成

删除一个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

将要删除的行存储到实例变量(例如_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]; 
} 
+0

谢谢队友!有效 –

0

简单地删除您的数据源阵列的条目,并做了

[self.tableView reloadData]; 
0

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

希望这会有所帮助。

0

首先使用观察者模式即NSObserver和观察员加入 音频播放器的对象。它可以帮助你跟踪音频播放器 何时停止。之后,您可以在@trojanfoe 的帮助下删除该行。