Можно ли изменить ориентацию iPhone в моем приложении? - PullRequest
1 голос
/ 24 июня 2011

Я реализовал метод willRotateToInterfaceOrientation, и мое приложение для iPhone прекрасно animates движение orientation, когда я переключаюсь между landscape и portrait.

Мой вопрос: возможно ли этоиметь другой тип animation?Есть ли другие встроенные animations, которые я мог бы использовать для этого transition?Или я мог бы вмешаться в это сам?Может кто-нибудь показать мне пример кода для изменения animation?

1 Ответ

2 голосов
/ 24 июня 2011

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

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
                                duration:(NSTimeInterval)duration {
    [UIView beginAnimations:nil context:NULL]; {
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationDelegate:self];

        if (toInterfaceOrientation == UIInterfaceOrientationPortrait ||
            toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
            [myImage setCenter:CGPointMake(384.0,170.0)];
            [firstLabel setCenter:CGPointMake(235.0,358.0)];
            [secondLabel setCenter:CGPointMake(519.0,358.0)];
            [button0 setCenter:CGPointMake(164.0,508.0)];
            [button1 setCenter:CGPointMake(384.0,508.0)];
            [button2 setCenter:CGPointMake(604.0,508.0)];
            [button3 setCenter:CGPointMake(274.0,666.0)];
            [button4 setCenter:CGPointMake(494.0,666.0)];
            [button5 setCenter:CGPointMake(164.0,824.0)];
            [button6 setCenter:CGPointMake(384.0,824.0)];
            [button7 setCenter:CGPointMake(604.0,824.0)];
            [button8 setCenter:CGPointMake(164.0,954.0)];
            [button9 setCenter:CGPointMake(604.0,954.0)];       
        } else {
            [myImage setCenter:CGPointMake(350.0,173.0)];
            [firstLabel setCenter:CGPointMake(844.0,66.0)];
            [secondLabel setCenter:CGPointMake(844.0,114.0)];
            [button0 setCenter:CGPointMake(140.0,450.0)];
            [button1 setCenter:CGPointMake(388.0,450.0)];
            [button2 setCenter:CGPointMake(636.0,450.0)];
            [button3 setCenter:CGPointMake(884.0,450.0)];
            [button4 setCenter:CGPointMake(140.0,638.0)];
            [button5 setCenter:CGPointMake(388.0,638.0)];
            [button6 setCenter:CGPointMake(636.0,638.0)];
            [button7 setCenter:CGPointMake(884.0,638.0)];
            [button8 setCenter:CGPointMake(844.0,190.0)];
            [button9 setCenter:CGPointMake(844.0,280.0)];       
        }   
    } [UIView commitAnimations];            
}

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

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