Хорошо, сценарий таков, что у меня есть собственный класс, который создает представление, содержащее изображение, и обрабатывает все его собственные сенсорные события.Иногда я хочу проверить, не приведет ли его перемещение к другому представлению родительского представления.Поэтому после соответствующего события касания я вызываю метод в родительском представлении, передавая его последнему касанию, и возвращаю BOOL.Это работает нормально, пока приложение остается в портретной ориентации.
Проблема связана с поворотом устройства, и все изображения автоматически поворачиваются для меня. Передаваемая CGPoint теперь находится в повернутой системе координат по сравнению с родительским представлением ивызываемый метод CGRectContainsPoint больше не работает должным образом.
В моем методе willAnimateRotationToInterfaceOrientation я настраиваю положение каждого настраиваемого представления для улучшения макета для новой ориентации, например
view.frame = CGRectMake((view.frame.origin.x*1.5),(view.frame.origin.y/1.5),view.frame.size.width,view.frame.size.height);
Я прочитал этовызов метода setBound привел бы к сбросу системы координат:
[view setBounds:view.frame];
, но в моем случае это не имеет значения.Я также пытался повозиться с «convertPoint: toView», но значения, которые он давал, тоже не имели особого смысла.Я пришел к выводу, что это не сработает в случае, если система координат была повернута?