Как сохранить изображение от автоматического поворота? - PullRequest
2 голосов
/ 06 июля 2010

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

Ответы [ 2 ]

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

Вы можете попробовать реализовать метод willAnimateRotationToInterfaceOrientation:duration: в вашем контроллере вида и повернуть UIImageView в противоположном направлении.

Приведенный ниже код от макушки головы, я не могу гарантировать, чтоэто будет работать:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration {
    CGFloat angle = M_PI/2; // Figure out the proper angle
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:duration];
    imageview.transform = CGAffineTransformMakeRotation(angle);
    [UIView commitAnimations];
}
0 голосов
/ 26 ноября 2010

Я предлагаю повернуть ваше изображение в программном обеспечении для редактирования изображений и загрузить его динамически. Это гораздо, гораздо проще сделать, чем возиться с углами (а также код легче читать).

Как это:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    if (toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {

        myBackground.image = [UIImage imageNamed:@"bg.jpg"];            

    } else { // landscape view      

        myBackground.image = [UIImage imageNamed:@"bg_landscape.jpg"];

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