MPMoviePlayerController имеет подпредставление, которое занимает все свои границы, и у этого подпредставления есть 3 распознавателя жестов (в iOS 4.3).
mp = [[MPMoviePlayerController alloc] initWithURL:movieURL];
mp.frame = aRectangle;
for (UIGestureRecognizer *g in ((UIView *)[mp.view.subviews objectAtIndex:0]).gestureRecognizers) {
NSLog(@"g %@", g);
}
выведет:
g <MPTapGestureRecognizer: 0x6224c30; baseClass = UIGestureRecognizer; state = Possible; cancelsTouchesInView = NO; view = <MPSwipableView 0x6416100>; target= <(action=_tapGestureRecognized:, target=<MPSwipableView 0x6416100>)>>
g <UIPinchGestureRecognizer: 0x6224710; state = Possible; cancelsTouchesInView = NO; delaysTouchesEnded = NO; view = <MPSwipableView 0x6416100>; target= <(action=_pinchGestureRecognized:, target=<MPSwipableView 0x6416100>)>>
g <MPActivityGestureRecognizer: 0x6224640; baseClass = UIGestureRecognizer; state = Possible; cancelsTouchesInView = NO; delaysTouchesEnded = NO; view = <MPSwipableView 0x6416100>; target= <(action=_activityGestureRecognized:, target=<MPSwipableView 0x6416100>)>>
Так что уже есть GestureRecognizer, который обрабатывает одно касание, но это не UITapGestureRecognizer, а MPTapGestureRecognizer (пользовательский распознаватель для проигрывателя фильмов).
Если вы создаете общий вид и добавляете его вИерархия просмотра проигрывателя фильмов, вы можете добавить к ней прикосновения, но это блокирует прикосновения к проигрывателю фильмов (поэтому одно касание не приведет к исчезновению элементов управления).
например,
UIView *aView = [[UIView alloc] initWithFrame:mp.view.bounds];
[aView addGestureRecognizer:tapGesture];
[mp.view addSubview:aView];
Это получит ваш кран, но вы нарушите управление.Возможно, еще есть способ, позволяющий ему взаимодействовать с другими жестами.