У меня есть контроллер просмотра видеоплеера, к которому я хочу добавить наложение поверх него.
Я использовал следующий код:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
[[moviePlayer view] addSubview:[self overlayControlsView]];
UIGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[[self view] addGestureRecognizer:tap];
}
return self;
}
overlayControlsView в настоящее время является только UILabel.
- (void)handleTap:(UITapGestureRecognizer *)sender {
NSLog(@"Tap handled");
if ([sender state] == UIGestureRecognizerStateEnded) {
if ([[self overlayControlsView] isHidden]) {
[[self overlayControlsView] setHidden:NO];
} else {
[[self overlayControlsView] setHidden:YES];
}
}
}
Когда видеопроигрыватель только что отображается, нажатие на него вызывает отображение и скрытие overlayControlsView.
Однако, сразу после того, как состояние загрузки moviewplayer изменилось и начинает воспроизводиться (я загружаю видео из Интернета, и поэтому здесь есть некоторый промежуток времени), метод handleTap больше не вызывался.
У кого-нибудь есть идеи по этому поводу? Есть ли лучший способ добавить элементы управления наложением?