Я пытаюсь поиграть с приложением для звуковой платы, и мне нужно более 50 кнопок (по одной для каждого звука, который у меня есть) на моем контроллере представления. Кроме того, я хотел сделать кнопки (и код аудиоплеера) полностью программными, так как постоянно раздражает переключение между раскадровкой и файлами .h / .m. Вместо того, чтобы копировать и вставлять один и тот же код кнопки 50 раз, я использую этот цикл for, чтобы сделать кнопки для себя:
NSUInteger i;
int xCoord=0;
int yCoord=0;
int buttonWidth=100;
int buttonHeight=50;
int buffer = 10;
for (i = 1; i <= 100; i++)
{
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
aButton.frame = CGRectMake(xCoord, yCoord,buttonWidth,buttonHeight );
[aButton addTarget:self action:@selector(playAudioMethod) forControlEvents:UIControlEventTouchUpInside];
[scrollView addSubview:aButton];
yCoord += buttonHeight + buffer;
}
[scrollView setContentSize:CGSizeMake(700, yCoord)];
PlayAudioMethod в селекторе для события нажатия кнопки воспроизводит только один звук. Как может быть 50 звуков, каждому из которых соответствует отдельная кнопка? Извините, если это действительно простой вопрос, я все еще изучаю цель C. Спасибо!
РЕДАКТИРОВАТЬ:
Вот playAudioMethod:
- (void) playButtonSound:(id)inSender
{
AudioServicesPlaySystemSound(self.SoundID);
}
По сути, он просто воспроизводит свойство SoundID, в которое я передал звуковой файл через это:
NSURL *buttonURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"medic_taunts01" ofType:@"wav"]];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)buttonURL, &SoundID);
self.SoundID = SoundID;