Нажмите кнопку ячейки CollectionView, чтобы воспроизвести звук из определенного массива и скопировать фильм из определенного массива.

Использование Swift 3

Я установил collectionView с 7 разделами - когда пользователь нажимает на ячейку (кнопку), конкретный звук будет воспроизводиться из массива звуков.

Итак, как мне разделить разделы в collectionView, чтобы соответствовать определенному массиву звуков?

например

1) звуки в soundArray1 будут воспроизводиться, когда пользователи нажимают ячейки (кнопки) в разделе 1 collectionView.

2) звуки в soundArray2 будут воспроизводиться, когда пользователи касаются ячеек (кнопок) в разделе 2 collectionView.

3) звуки в soundArray3 будут воспроизводиться, когда пользователи нажимают на ячейки (кнопки) в разделе 3 collectionView.

вплоть до раздела 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 - это мой первый массив звуков для раздела 1 в collectionView, который отлично работает по порядку, но этот массив peopleSounds также вызывается для каждого другого раздела в collectionView на данный момент.

так как мне теперь заставить воспроизводить мой второй массив звуков, когда пользователь нажимает кнопки в разделе 2 collectionView и т. д. до раздела 7?

благодарю вас

1 ответ

Сделайте это 2d Array и сохраните номер раздела в переменной. Вы сможете получить доступ к имени файла, как (Код в целом):

// 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]

Надеюсь, что это помогло.

Другие вопросы по тегам