iPhone Multi-View Rotation Hell

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

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

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

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

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

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

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

Например, чтобы загрузить представление, которое я назвал 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 ответ

Решение

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

Другие вопросы по тегам