Виды и кнопки не реагируют на прикосновения после поворота - PullRequest
0 голосов
/ 05 октября 2010

Я работаю с iOS 3.0 и пытаюсь добавить поддержку поворота (ландшафта) в мое приложение.

Все о вращении было достаточно легко. Однако после поворота в портретный режим правая треть экрана (480-320) не реагирует на все события (касания, перетаскивание и т. Д.). Я проверил, что ключевое окно получает события, но эти события не передаются кнопкам и UIViews в правой (в альбомной) части экрана.

Я использую NSNotificationCenter для получения событий с измененной ориентацией (и не использую флаг автоматического поворота).

Я видел: текст ссылки , но это не очень помогло в моем случае.

Застрял. Нужна помощь. Спасибо.

1 Ответ

1 голос
/ 07 октября 2010

Я исправил проблему, с которой столкнулся .. Мне нужно было сделать [self.navigationController.view setNeedsLayout].

Насколько я понимаю, это (возможно, неверно, что self.navigationController.view.frame было таким же, как self.view.frame, и оба были равны (x = 0, y = 0, ширина = 320, высота = 480). Затем я повернул self.view на M_PI/2 и выполнил ряд манипуляций с кадрами при выборе self.view.subviews, чтобы все правильно анимировать / позиционировать / масштабировать.

Это сработало хорошо, но навигационный контроллер не был готов признать события касания к частям self.view, которые были справа от 320. По сути, если бы это self.navigationController.view.clipsToBounds было правдой, оно могло бы даже не показать, что часть self.view.

В любом случае, установка setNeedsLayout в представлении контроллера навигации устранила проблему. Я надеюсь, что это поможет кому-то еще.

...