按顺序将音频文件数组加载到集合视图单元格

Posted

技术标签:

【中文标题】按顺序将音频文件数组加载到集合视图单元格【英文标题】:Load audiofile array to collection view cells in sequence manner 【发布时间】:2013-06-10 17:15:37 【问题描述】:

我已在此方法中将图像和标签加载到自定义 collectionview 单元格

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath;


Cell *cell = [cv dequeueReusableCellWithReuseIdentifier:kCellID forIndexPath:indexPath];

在同一方法中根据实际 NSIndexPath 值赋予单元格标题

cell.label.text = [NSString stringWithFormat:@"%ld,%ld", (long)indexPath.row, (long)indexPath.section];

在自定义集合视图单元格的每个单元格中以相同的方法加载不同的图像

NSString *imageToLoad = [NSString stringWithFormat:@"%d.jpg", indexPath.row];

cell.image.image = [UIImage imageNamed:imageToLoad];

我想以相同的方法在自定义集合视图单元格的每个单元格中加载不同的音频文件

audioArray =[[NSArray alloc] initWithObjects:@"Theme1", @"Theme2", @"Theme3", @"Theme4", nil];

NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:filePath ofType: @"mp3"];

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: audioFilePath];

audioPlayer = [[AVAudioPlayer alloc]
               initWithContentsOfURL:fileURL error:nil];

如果我在下面添加 indexPath.row

NSString *filePath = [audioArray objectAtIndex:indexPath.row];

然后它总是在所有单元格的数组中播放“Theme4”最后一个音频文件

如果我写 0

NSString *filePath = [audioArray objectAtIndex:0];

然后它总是播放“Theme1”所有单元格中的第一个音频文件

如何在自定义集合视图单元格的每个单元格中加载不同的音频文件。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您应该在

中添加这些代码行
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath


audioArray =[[NSArray alloc] initWithObjects:@"Theme1", @"Theme2", @"Theme3", @"Theme4", nil];

NSString *filePath = [audioArray objectAtIndex:indexPath.row];

NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:filePath ofType: @"mp3"];

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: audioFilePath];

audioPlayer = [[AVAudioPlayer alloc]
           initWithContentsOfURL:fileURL error:nil];

而不是在

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath;

希望这会有所帮助。

【讨论】:

以上是关于按顺序将音频文件数组加载到集合视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

将数组中的图像嵌入到集合视图的单元格中

集合视图不会每次都重新加载

如何组织表格视图单元格

重新加载并滚动到特定的集合视图单元格

从 Xib 加载原型单元

将数据从集合视图单元格移动到新的集合视图单元格