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

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 250
#1

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

02.04.2015, 22:58. Просмотров 658. Ответов 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];
       
            
        }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2015, 22:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отдельный observer для каждой ячейки (Программирование iOS):

Отдельный класс для каждой задачи - Visual Basic .NET
Здравствуйте. Есть элемент управления, допустим Picturebox. На нем прорисовывает много разных групп. Группа (в данном...

Не отображается отдельный title для каждой странице - Yandex
Всем доброго дня! Решил заняться оптимизацией страниц. Начал с title. Cделал, чтобы при загрузки карточки товара: У меня при помощи...

Нужно ли для каждой страницы index создавать отдельный файл html? - HTML, CSS
Добрый вечер! Давно интересует вопрос, нужно ли для каждой страницы index, создавать отдельный файл html?

Для каждой строки вывести наиболее длинное слово и записать его в отдельный массив - Pascal
Помогите, пожалуйста, преобразовать программу. Нужно чтобы она работала с массивом строк (т.е. для каждой строки выводила наиболее длинное...

StringGrid + свой Hint для каждой ячейки - C++ Builder
Здасте. Хочу вот сделать хинт для каждой ячейки, где текст длиннее чем колонка. //...

Выбор каждой 4 ячейки с одного листа, в другой подряд для автозаполнения - MS Excel
или формула и или макрос.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2015, 22:58
Привет! Вот еще темы с ответами:

Сумму каждой строки матрицы записать в отдельный динамический массив (указатели) - C (СИ)
Я ввожу динамический двумерный массив через указатели. Потом мне нужно сумму каждой строки записать в отдельный динамический массив. У меня...

Найти минимальные элементы каждой строки матрицы и поместить их в отдельный массив - Turbo Pascal
Найти минимальные элементы каждой строки матрицы Х(3х4) и поместить их в отдельный массив. Распечатать исходный и полученный массивы....

Вывести в отдельный файл и на экран отсортированный по алфавиту список студентов каждой группы - Free Pascal
Создать файл, содержащий сведения о результатах сессии: фамилия и инициалы студента, номер группы, успеваемость (массив из пяти элементов)....

Найти наибольшие элементы каждой строки матрицы и записать в отдельный массив. Вложенные циклы. - Turbo Pascal
Дан массив А(К на К).Найти наибольшие элементы каждой строки и запомнить в отдельный массив.Определить номера строки и столбца наименьшего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru