点击CollectionView Cell按钮播放特定阵列的声音并从特定阵列

时间:2016-10-13 11:27:17

标签: arrays swift audio swift3 collectionview

使用Swift 3

我已经设置了一个包含7个部分的collectionView - 当用户点击一个单元格(按钮)时,特定声音将从一组声音中播放。

那么如何拆分collectionView中的部分以匹配特定的声音数组?

例如

1)当用户点击collectionView第1部分中的单元格(按钮)时,soundArray1中的声音将会播放

2)当用户点击collectionView第2部分中的单元格(按钮)时,soundArray2中的声音将会播放

3)当用户点击collectionView第3节中的单元格(按钮)时,soundArray3中的声音将会播放

一直到第7节。

以下是用户点击cellButton

时的当前代码
@IBAction func cellButton(_ sender: AnyObject) {
    let sound = (sender as! UIButton).tag
    self.setupAudioPlayer(file: peopleSounds[sound] as NSString, type: ".m4a")
    self.soundPlayer.play()
   }

其中peopleSounds是我在collectionView中第1部分的第一个声音数组,它按顺序完美地工作 - 但是这个peopleSounds数组也会在collectionView中的每个其他部分调用

那么当用户点击collectionView等第2部分中的按钮直到第7部分时,我现在如何使我的第二组声音播放?

谢谢

1 个答案:

答案 0 :(得分:0)

将其设为2d数组并将节号存储在变量中。您将能够访问文件名,如(一般代码):

// the 2d array:
let soundFiles = [[String]]()

// you should change its value by checking the selected cell's section
var currentSection = 0

// somewhere in your code, you can do:
let firstList = soundFiles[currentSection]
let soundFileName = firstList[buttonTag]

希望有所帮助。