Почему мой UITableView не вращается? - PullRequest
1 голос
/ 25 марта 2009

В Интерфейсном Разработчике у меня есть следующее

UIViewController
-- View
---- TableView

В моем UIViewController я установил

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

У меня также есть другие контроллеры представления, которые находятся в IB. Что мне здесь не хватает? Единственный способ заставить его вращаться - использовать метод transform.

Ответы [ 4 ]

3 голосов
/ 26 марта 2009

Вы случайно используете просмотр таблицы в приложении на основе вкладок? В этом случае вы можете получить представление для поддержки ландшафтного режима, только если все контроллеры представления контроллера вкладок поддерживают ландшафтный режим.

Кроме этого, я не вижу причин, по которым ваш вид не должен поддерживать ландшафтный режим.

1 голос
/ 18 июля 2011

Проблема с настройками авторазмера. Чтобы быть более конкретным, в Интерфейсном Разработчике убедитесь, что нажата кнопка авторазмера, затем в Инспекторе размеров убедитесь, что в табличном представлении все его суперпредставления табличного представления заполнены красными стрелками сверху, слева, справа, а также выберите два внутренние стрелки.

Мне интересно, действительно ли у спрашивающего было табличное представление в подпредставлении основного представления. Я вижу это поведение для табличного представления, которое находится на один уровень глубже в иерархии представления:

  • Главный вид
    • подвид
      • Вид таблицы

По умолчанию в главном представлении стрелки автоматического изменения размера установлены правильно, но если вы добавляете дополнительный вид, это не так.

В ответ на вопрос о проблеме с несколькими контроллерами представления: обратите внимание, что UIViewController не является делегатом UIView. Фактически, похоже, что цепочка событий идет другим путем - сначала система видит автоповорот и сообщает об этом UIViewControllers. Если у UIViewControllers есть значение beforeAutoresize, возвращающее yes, тогда UIViewControllers изменяет размер своих основных представлений. Изменение размера основных видов может автоматически привести к изменению размера их подпредставлений, если они установлены правильно.

Согласно документам Apple, у вас не должно быть нескольких контроллеров представления, управляющих различными частями представления - например, отдельный контроллер представления таблицы для представления таблицы, находящегося в подпредставлении основного представления - потому что он связывается с цепочкой событий - Вы могли видеть, как это было бы здесь. Не знаю, полезно это или нет.

0 голосов
/ 18 декабря 2014

если вы используете раскадровку, ваш VC содержит UITableview, проверьте, не отключена ли автоматическая разметка вашей сцены.

0 голосов
/ 25 марта 2009

Я только что попробовал это, и он работает, как ожидалось. Вам нужно будет предоставить более подробную информацию, я думаю. По моему опыту, когда представление «не может» вращаться, это потому, что какой-то контроллер представления где-то говорит, что не стоит. Убедитесь, что все ваши контроллеры представления возвращают правильные значения из shouldAutorotateToInterfaceOrientation:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...