обнаруживать прикосновение subview uiview, которое анимируется с помощью CAAnimation

Я пытаюсь обнаружить прикосновение к UISubview для анимированного представления

Вот мой код обнаружения:

//simple but not very elegant way of getting correct frame CGRect keepFrame = self.fishContainer.layer.frame; self.fishContainer.layer.frame = [[self.fishContainer.layer presentationLayer] frame]; //get touch location, taking presentation layer into account. (See above) CGPoint p = [sender locationInView:self.fishContainer]; CALayer *layer =[self.fishContainer.layer presentationLayer]; //apply relevant transform p = CGPointApplyAffineTransform(p,layer.affineTransform); EBLog(@"checking point %@",NSStringFromCGPoint(p)); UIView *vToRemove = nil; //find topmost view containing touched point for (UIView *v in self.parasites) { EBLog(@"-BOUND %@",NSStringFromCGRect(v.frame)); if(CGRectContainsPoint(v.frame, p)) { vToRemove = v; } } //OK, we have a view. Let's remove it. if(vToRemove) { EBLog(@"found one"); [vToRemove removeFromSuperview]; [self.parasites removeObject:vToRemove]; if ([self.parasites count] == 0) { [self showWinnerScreen]; [self stopGame]; } } //restore view frame self.fishContainer.layer.frame = keepFrame; 

Все работает правильно, если я не анимирую parasiteArea parentview.

Когда я создаю родительское представление parasiteArea (A CAAnimation состоящее из перемещения вида, масштаба представления и поворота представления), прикосновение выходит за пределы ожидаемого подсмотра.

ОБНОВИТЬ

В большинстве случаев мне приходилось работать с детектированием (см. Код выше), используя свойство presentationLayer и CGPointApplyAffineTransform . Тем не менее, все же есть некоторые случаи, когда он работает dosnt.

Думаю, мне нужно перевести точку касания в координатное пространство CAAnimation .

Или что-то типа того? какие-либо предложения?

One Solution collect form web for “обнаруживать прикосновение subview uiview, которое анимируется с помощью CAAnimation”

Я закончил использование UIView animateWithDuration вместо CAAninmation . Для моей цели достаточно ограниченных возможностей анимации.

  • Анимация ширины просмотра при использовании автоматической компоновки
  • Медленный доступ по умолчанию для ключевого предупреждения ClientState в iOS
  • iOS - initWith методы под дугой
  • Воспроизведение видео iOS с помощью MPMoviePlayerController
  • Я потерял свой открытый ключ. Могу ли я восстановить его из закрытого ключа?
  • Как выбрать конкретные данные в Core Data?
  • Sporadic black screen при выполнении segue в iOS 9.2.1 / XCode 7.2
  • Невозможно изменить тип карты MKMapView?
  • Согласование имен объектов Objective C
  • Перетасовка массива в объекте-c
  • Кнопки сгруппированы по UIButton
  • Как управлять Копировать, Вставить, Выбрать все, Определить в приложении UITextView iPhone?
  • Interesting Posts

    множественные касания: событие touchhend срабатывает только тогда, когда возникает сенсорная манипуляция

    Uber Недопустимые учетные данные OAuth 2.0 предоставили Uber-аутентификацию в ios Swift

    SecCopyErrorMessageString дает «Использование неразрешенного идентификатора» в swift

    Переключение с режима просмотра 1 на Bluetooth невозможно?

    Есть ли быстрый способ (сочетание клавиш и т. Д.) Для автоматической настройки размера кнопки для соответствия размеру изображения с помощью раскадровки?

    Как я могу автоматически запускать медиа в iOS> = 4.2.1 Mobile Safari?

    Objective-C: UITabBarController с разделенными видами

    Обработка многопоточности в Objective c

    Как экспортировать изображения в виде видео в Swift?

    Решение использовать основные данные или NSUserDefaults

    Ионное уведомление Push не работает в IOS

    Ошибка утверждения в UITableView configureCellForDisplay: forIndexPath:

    Как импортировать / экспортировать данные в / из приложения iPhone?

    получить подачу, рыть, рулон с CMRotationMatrix

    Сегменты раскадровки, вызывающие утечки памяти

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.