У меня проблема. Надеюсь, кто-то может мне помочь.Панорамный жест над верхом жесты Tap в моем обычном виде
У меня есть представление, которое имеет жест панорамы, который отлично работает, и я могу панорамировать изображение, которое я отобразил. Это единственный жест, который добавлен.
Я затем добавить UIView (пользовательский вид называется headerView) с кнопками на нем, что я добавляю программно ..
- Он отображает кнопки правильно
- Я поставил его делегат себя
- Я подтвердил, что селектора кнопок установлены
- Я использовал headerView раньше в другой форме, и кнопки работают нормально.
- Я привел мою headerView к «фронту»
Проблемы я встречая что в этой форме с панорамированием жеста, кнопки на моем headerView не реагировать на касания. Если я нажимаю прямо на свой заголовок, я могу передвигаться по основному изображению, поэтому жест панорамы, похоже, переместится на жесты касания на моем заголовочном файле, что предотвращает работу каких-либо из моих кнопок заголовка.
Как исправить это, чтобы жест панорамирования не мешал постукивать в моем заголовке?
Спасибо!
SOMEWHAT SOLVED ... Чтобы обновить эту запись. Я был в состоянии получить ответ вручную установив headerView с отводом жест ...
self.headerView = [[OAPhotoHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.window.bounds.size.width, 100.0f) buttons:OAPhotoHeaderButtonsComment| OAPhotoHeaderButtonsLike |OAPhotoHeaderButtonsFlag];//was 44.0f
self.headerView.delegate = self;
[self.headerView setUserInteractionEnabled:YES];
self.headerView.backgroundColor = [UIColor grayColor];
self.headerView.photo=user;
[self.headerView setPhoto:self.userPhotoObject];// self.myUserPhotoObject];
[self.headerView.likeButton setUserInteractionEnabled:YES];
//[self.headerView.likeButton addTarget:self action:@selector(didTapLikePhotoButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.headerView setUserInteractionEnabled:YES];
[self.headerView setOpaque:YES];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self.headerView action:@selector(didTapLikePhotoButtonAction:)];
[tap setNumberOfTouchesRequired:1];
[tap setNumberOfTapsRequired:1];
[self.headerView addGestureRecognizer:tap];
[self setExclusiveTouchForButtons:self.headerView];
Это фактически запускает обработчик кнопки в классе headerView, как будто кто-то нажал на кнопку. Однако это не сработает, поскольку они могут нажимать в любом месте headerView, и он срабатывает. Кажется, я не могу найти подходящий способ назначить жест отвода на кнопку
[self.headerView.likeButton addGestureRecognizer:tap]
не работает. Кроме того, это не работает, либо ...
[self.headerView.likeButton addTarget:self action:@selector(didTapLikePhotoButtonAction:) forControlEvents:UIControlEventTouchUpInside];
Я смог отключить жест панорамы над моим заголовком. Использование - (BOOL) gestureRecognizer: (UIGestureRecognizer *) gestureRecognizer shouldReceiveTouch: (UITouch *) touch {...} однако кнопки до сих пор не регистрируют ответвление , – user2013871
Попробуйте установить exclusiveTouch на свои кнопки. Я не уверен в этой помощи, но стоит попробовать.Это от Apple doc: xclusiveTouch только предотвращает попадание в другие виды во время активного касания в эксклюзивном сенсорном виде. – Greg
Спасибо за ваше предложение Грег! Я установил кнопки в exclusiveTouch, но они все равно не работают :( – user2013871