Я пытаюсь создать представление прогресса внутри моего заголовка, который постоянно обновляется в синхронизации с текущим ходом песни. У меня есть логика, что индикатор выполнения работает нормально. Просто я не могу заставить заголовок отображать progressView. Мне нужно получить точную ячейку для заголовка и установить прогресс в соответствии с моим таймером. Как показано ниже. Но приведенный ниже код приводит к сбою в доступе к определенному indexPath. Как получить доступ к indexPath для заголовка?ProgressView внутри заголовка CollectionView
- (void)updateTime
{
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection:0];
CurrentArtistHeader *cell = (CurrentArtistHeader *)[self.collectionView cellForItemAtIndexPath:indexPath];
float duration = CMTimeGetSeconds(self.player.currentItem.duration);
float current = CMTimeGetSeconds(self.player.currentTime);
cell.progressView.progress = (current/duration);
}
-(void)playCurrentArtist:(NSDictionary *)currentArtist
{
NSString *streamString = [currentArtist objectForKey:@"stream_url"];
NSString *urlString = [NSString stringWithFormat:@"%@?client_id=%@", streamString,CLIENT_ID];
NSURL *URLFromString = [NSURL URLWithString:urlString];
self.player = [AVPlayer playerWithURL:URLFromString];
[self.player play];
self.playerIsPlaying = YES;
[self.collectionView reloadData];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:[self.player currentItem]];
self.timer = [NSTimer scheduledTimerWithTimeInterval:.05 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
}