iPhone Multi-View Rotation Hell - PullRequest
       16

iPhone Multi-View Rotation Hell

1 голос
/ 01 ноября 2011

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

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

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

В моих перьях, которые имеют более одного вида, я могу выбрать параметры автоматического изменения размера только в исходном главном виде.На добавленных мною представлениях, которые я загружаю с помощью insertSubview, я могу выбрать параметры фиксированного поля, но не параметры изменения ширины и высоты.Я использую Xcode 4.

Мой 1-й вопрос, почему я не могу выбрать параметры изменения размера на дополнительных видах?

Извините, мне пришлось удалить изображения, которые я вставил сюда,показывая, что я имею в виду, чтобы иметь возможность публиковать сообщения.

В любом случае, это не моя главная проблема, я просто хочу из любопытства узнать, почему я не могу выбрать параметры изменения размера.Я нашел способ обойти это в коде.В функцию, куда я загружаю подпредставление, я добавляю [viewName setAutoresizingMask: UIViewAutoresizingF FlexibleWidth | UIViewAutoresizingF FlexibleHeight];

Например, чтобы загрузить представление, которое я назвал shiftStart, я использую:

- (IBAction)loadShiftStart:(id)sender {
    [self clearView];
    [self.view insertSubview:shiftStart atIndex:0];
    [shiftStart setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}

сейчасвот моя проблемаУ меня есть файл пера, который имеет 3 вида, вид, который является основным видом, который загружается первым, rotaStart, который загружается как подпредставление при нажатии кнопки в первом представлении, и shiftStart, который загружается как подпредставление, когда кнопка на первомвид нажимается.rotaStart и shiftStart практически идентичны, с заголовком, текстовым блоком, кнопкой «Да» и кнопкой «Нет».Единственное отличие - это текст в поле, и какой вид загружается, если вы нажимаете кнопки «Да» или «Нет».

У меня все те же параметры изменения размера и полей, выбранные в Xcode для заголовка и текстаблок и кнопки, и, насколько я могу судить, код, который их загружает, идентичен (см. код ниже), но shiftStart вращается правильно, а rotaStart - нет.

- (IBAction)loadRotaStart:(id)sender {
    [self clearView];
    [self.view insertSubview:rotaStart atIndex:0];
    [rotaStart setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}

- (IBAction)loadShiftStart:(id)sender {
    [self clearView];
    [self.view insertSubview:shiftStart atIndex:0];
    [shiftStart setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}

Может кто-нибудь сказать мне, почему rotaStart неВращающийся, когда телефон меняется на альбомную, пожалуйста?

Извините, это объяснение немного затянуто.Я не уверен, как еще это объяснить.

Спасибо

1 Ответ

0 голосов
/ 03 ноября 2011

Для тех, кто смотрит на это с похожей проблемой, @ longball решил ее за меня. Каким-то образом мне удалось добавить второй вид поверх базового вида, в комплекте с метками и кнопками. Удаление дополнительного вида решило проблему.

...