2016-10-18 2 views
0

Я использую Swift 3. Я создал коллекциюView с 7 разделами - когда пользователь удаляет ячейку (кнопку), определенный звук будет воспроизводиться из массива звуков.Как устранить проблему с коллекцией и массивами?

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

, например

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: Sounds[sound] as NSString, type: ".m4a") 
self.soundPlayer.play()} 

где Звуки является массив 1 звуковых файлов. Однако этот массив звуковых файлов воспроизводится во всех разделах collectionView прямо сейчас. Я не могу решить, как разделить каждый массив звуков, чтобы соответствовать каждому разделу в collectionView.

+0

Используйте массив массивов звуков и используйте номер раздела, чтобы извлечь правильный звуковой массив и номер ячейки, чтобы получить правильный звук из этого массива? – NSNoob

+0

Также как вы устанавливаете тег UIButton? – NSNoob

ответ

0

Вы должны иметь массив массивов для звуков:

let allSounds = [soundArray1, soundArray2, soundArray3] 

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

Чтобы получить звук, который является первым элементом в разделе 0, вы бы:

let soundArray = allSounds[0] // Get section 0 
let sound = soundArray[0] // Get sound at index 0 

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

let soundArray = allSounds[2] // Get section 2 
let sound = soundArray[6] // Get sound at index 7 
+0

Тег его кнопки должен будет представлять как indexPath.section, так и indexPath.row tho – NSNoob

+0

Предполагая, что в каждом разделе имеется одинаковое количество кнопок, было бы довольно легко работать с использованием целочисленной математики: 'tag% no-of -items-in-section' & 'tag/no-of-items-in-section' –

+0

Однако гораздо лучшим способом было бы либо использовать' didSelectCellAtIndexPath' вместо кнопок, либо блоки внутри ячейки для обратного вызова к контроллеру –

Смежные вопросы