Форум программистов, компьютерный форум CyberForum.ru

Отдельный observer для каждой ячейки - Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS/iPhone Где обрабатывать нажатие кнопки http://www.cyberforum.ru/ios-dev/thread1410615.html
Здравствуйте. Возник такой вопрос, где обрабатывать событие нажатия кнопки, которая лежит внутри ячейки (кастомной)? Вроде как логично, что бы обработчик нажатия кнопки в ячейке обрабатывала сама ячейка, но может быть я ошибаюсь? Добавлено через 4 минуты Или обрабатывать нужно в tableViewController?
Программирование iOS/iPhone Индикатор загрузки аудио Вечер добрый. В вконтакте или в другом каком то сервисе когда мы запускаем трек (или видео) на проигрывание, то под ползунком воспроизведения можно увидеть какой размер аудио загрузился (на ютубе серенькая полоска). Вот как эту шкалу можно получить? Создать легко - прогрессВью, но какие данные использовать? Где и как эти данные получить получить (или как они хоть называются), может через... http://www.cyberforum.ru/ios-dev/thread1410178.html
Программирование iOS/iPhone Apple Watch голосовой ввод текста
Планирую добавить в свое приложение поддержку Apple Watch. Мне необходимо реализовать ввод текста голосом. На официальном сайте нашел следующий код: - (void)presentTextInputControllerWithSuggestions:(NSArray *)suggestions allowedInputMode:(WKTextInputMode)inputMode completion:(void (^)(NSArray *results))completion По...
Работа из под виртуальной машины Программирование iOS/iPhone
Имею старенький Мас и решил попробовать Mac OS X Yosemite через виртуальную машину VMWare 11 и среду Xcode 6. Скачал поставил ... но там не работает эмулятор IPhone из под виртуалки... Что значит программы отлаживать и писать нет возможности?
Программирование iOS/iPhone Xcode не видит сертификаты http://www.cyberforum.ru/ios-dev/thread1407329.html
Добрый вечер. Подскажите, почему xcode не видит ни один из двух сертификатов. Записал видео-скриншот https://yadi.sk/d/c7tT1gHIfbmkn
Программирование iOS/iPhone Работа с сокетами Здравствуйте. Подскажите литературу где описывается как работать с сокетами в iOS. Все что нашел в инете это туториалы типа напишите эту строчку, потом эту и в результате будет то-то. А что это такое, зачем оно нужно, как правильно делать, как не нужно делать? подробнее

Показать сообщение отдельно
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 242

Отдельный observer для каждой ячейки - Программирование iOS/iPhone

02.04.2015, 22:58. Просмотров 636. Ответов 0
Метки (Все метки)

Здравствуйте. В ячейках таблицы имеются аудиофайлы с кнопкой для запуска воспроизведения этого файла. Когда запускаю первый трек для проигрывания все нормально, айдио воспроизводится, таймер времени воспроизведения изменяется, но когда включаю второй трек, воспроизведение первого останавливается и начинает играть второй, но счетчик времени начинает изменятся у обоих файлов. Если запускаю третий то у трех, при этом считается время файла который в данный момент воспроизводится. Я так понял, что дело в observer'ах, что предыдущий слушатель не удаляется и в результате сразу две ячейки обрабатывают нотификации, но я не понимаю как разделить нотификации

Вот мой код
Вроде как cell новая каждый раз и обсервер я удаляю перед созданием нового, но все равно такой кавардак твориться
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
- (IBAction)playAudioButton:(id)sender {
  
    self.allPostArray = self.delegate.postsArray; 
 
    UITableView *tableViewForCell = [sender tableView]; //метод категории возвращает tableView на котом лежит ячейка
    UITableViewCell *cell = [sender superCell]; //узнаем текущую ячейку
    [[NSNotificationCenter defaultCenter] removeObserver:cell];
       
    if (cell) {
      NSIndexPath *indexPath = [tableViewForCell indexPathForCell:cell];
      NSInteger indexForArray = indexPath.row;
 
      VRAudioFile *audio = [self.allPostArray objectAtIndex:indexForArray];
 
       [self setIconForBtnState:audio];
 
      [[NSNotificationCenter defaultCenter]
          addObserver:cell
             selector:@selector(updateDurationLabel:)
                 name:VRAudioFileDurationDidChangeNotification
               object:nil];
    }
 
}
 
 
-(void)updateDurationLabel: (NSNotification *) notification {
    self.audioDurationTime.text = [notification.userInfo objectForKey:VRAudioFileDurationUserInfoKey];
}
 
 
-(void)setIconForBtnState: (VRAudioFile*) audio {
 
    
    if ([self.playButtonOutlet.titleLabel.text isEqualToString: @"Play"]) {
        [self.playButtonOutlet setTitle:@"Pause" forState:UIControlStateNormal  ] ;
        [self.playButtonOutlet setImage:[UIImage imageNamed:@"pause-32"] forState:UIControlStateNormal];
        
        NSURL *audioFileURL = [NSURL URLWithString:audio.audioFileURLString];
        [audio playAudioFileFromURL:audioFileURL];
        
        
        
        
    }
    else
    if ([self.playButtonOutlet.titleLabel.text isEqualToString: @"Pause"]) {
        
        [self.playButtonOutlet setTitle:@"Resume" forState:UIControlStateNormal  ] ;
        [self.playButtonOutlet setImage:[UIImage imageNamed:@"play-32"] forState:UIControlStateNormal];
        [audio setPauseStatePlayer];
        
        
    }
    
    else
        if ([self.playButtonOutlet.titleLabel.text isEqualToString: @"Resume"]) {
         
            [self.playButtonOutlet setTitle:@"Pause" forState:UIControlStateNormal  ] ;
            [self.playButtonOutlet setImage:[UIImage imageNamed:@"pause-32"] forState:UIControlStateNormal];
            [audio setResumeStatePlayer];
       
            
        }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru