У меня две проблемы с viewcontroller в альбомной ориентации на iPad.
(1) У меня есть два всплывающих окна с таблицами. Таблицы следует прокрутить до определенной строки, чтобы отразить выбор в главном представлении. Вместо этого некоторые таблицы прокручиваются вниз, но выбранная строка остается за кадром.
(2) Все мои листы действий имеют ширину 320.
В Интерфейсном Разработчике все мои представления создаются в альбомной ориентации. Только главного окна нет, но я не вижу способа это изменить.
Моя конфигурация: После запуска я получаю следующие координаты для моего главного окна и вида основного контроллера:
Window frame {{0, 0}, {768, 1024}} mainView frame {{0, 0}, {748, 1024}}
Все остальные виды после этого показывают эти координаты при вызове (при загрузке, но до представления):
frame of keysig {{0, 0}, {1024, 768}}
frame of instrumentSelect {{20, 0}, {1024, 768}}
frame of settings {{0, 0}, {467, 300}}
Во всех моих viewControllers я отвечаю на shouldAutorotateToInterfaceOrientation
:
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeRight));
Все (почти) работает как положено. Приложение запускается в одном из двух ландшафтных режимов. Представления (и контроллеры представления) отображают все, к чему они принадлежат, и касания работают по всему экрану, как и ожидалось. Тем не менее, у меня все еще есть две проблемы.
Проблема 1: У меня есть два всплывающих окна, содержащие таблицы, достаточно длинные, чтобы убежать с экрана. Таблицы должны прокручиваться до выбранной строки. Они прокручивают, то есть они не начинают визуально со строки 1, но они недостаточно прокручивают, чтобы показать выбранную строку.
альтернативный текст http://idisk.mac.com/mahboud//Public/keysig.png
альтернативный текст http://idisk.mac.com/mahboud//Public/instrumentlist.png
Почти кажется, что внутренний прямоугольник UITable создается с неправильным номером и остается таким же, но я проверил обе координаты содержимого scrollView в UITableView, и они показались разумными.
Проблема 2: Я думаю, что это связано с проблемой 1, потому что мои листы действий имеют ширину 320. Я могу только предположить, что iPad позволяет actionSheets только в 320 или 480 ширин и так или иначе считает, что экран ориентирован в портретном режиме, использует более узкую ширину.
Вот, пожалуйста. Я не могу поверить, что я все еще зацикливаюсь на вопросах ориентации. Клянусь, Apple не позволяет легко иметь приложение с альбомной ориентацией. Есть идеи?