Я недавно задал вопрос относительно обнаружения столкновений в подпредставлениях, с идеальным ответом. Я пришел к последнему пункту в реализации коллизии в моем приложении, но я столкнулся с новой проблемой.
Использовать convertRect было нормально, получая CGRect из subView. Мне нужно было, чтобы это было немного сложнее, так как это были не совсем прямоугольники, которые нужно было обнаружить.
в XCode Я создал абстрактный класс под названием TileViewController. Среди других свойств он имеет IBOutlet UIView * DetectionView;
Теперь у меня есть несколько классов, которые наследуются от TileViewController, и у каждого класса есть несколько представлений, вложенных вViewViewView, которые я создал с помощью Interface Builder.
Идея состоит в том, что объект может быть определенной формы или размера, я программно поместил эти «плиточные» точки обнаружения в центр каждого объекта. Пользователь может выбрать элемент и взаимодействовать с ним, в этом случае перемещать его.
Теперь сам метод работает до некоторой степени, но я не думаю, что он правильно работает с вложенными значениями, так как обнаружение выключено.
Упрощенная версия этого метода работает - использование CGRectIntersectsRect для самого самогоViewView, поэтому мне интересно, правильно ли я выполняю циклы и проверяю представления?
Я не был уверен, сравнивалось ли это в том же виде, но я подозреваю, что это так, я немного изменил код в какой-то момент, вместо того, чтобы сравнивать значения в self.view. Я перенес UIViews viewController.detectView в interactiveView.detectView, но результат был тот же.
Это сфальсифицировано, поэтому подпредставления меняют цвет, но они меняют цвет, когда они даже не касаются, и когда они касаются не того UIviews меняют цвет