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