Ориентация анимационного слоя - PullRequest
0 голосов
/ 22 июля 2010

Здравствуйте, спасибо за просмотр моего вопроса.

У меня есть приложение, которое поддерживает только альбомную ориентацию (кнопка влево или вправо).Запускается в левом пейзаже.Отлично - он запускается в правильной ориентации и даже правильно переориентирует виды (я настроил поддерживаемый метод ориентации) между пейзажем влево и вправо.

Переходя к моему вопросу: я запускаю приложение и добавляю вид,Я запускаю анимацию, а затем меняю свой первый вид на второй (и второй на третий и т. Д.).

Моя проблема заключается в том, что анимация не согласована.

Если указатьkCATransitionFromLeft, мой переход скользит из верха или низа (в зависимости от ориентации устройства).Если я укажу из kCATransitionFromRight, я получу такое же поведение.

Если я укажу kCATransitionFromBottom или kCATransitionFromTop - тогда переход будет отображаться правильно, когда новый вид скользит со стороны, однако то, с какой стороны он возник, зависит от ориентации устройства.Я хочу, чтобы мой взгляд всегда скользил справа налево.Очевидно, я мог бы написать if / then для достижения этого, используя kCATransitionFromBottom или kCATransitionFromTop, но я думаю, что должен быть более простой способ.

Итак, есть ли простой способ, чтобы анимации создавались последовательно в соответствии с ориентацией?Почему kCATransitionFromBottom не ВСЕГДА происходит снизу?Как бы я даже начал изменять это поведение?

Спасибо за любые идеи.

1 Ответ

1 голос
/ 23 июля 2010

Я делаю то же самое в проекте, над которым я работаю, анимация запускается с прокруткой.Единственное отличие состоит в том, что я меняю UIImages.

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    if (interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
        interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
        return YES;
    }
    return NO;
}

Надеюсь, это поможет!

...