iPhone для разработчиков – поворот изображения вручную

StackOverflow https://stackoverflow.com/questions/1220580

Вопрос

Как я могу вручную повернуть представление с помощью autoresizingMasks, как если бы пользователь повернул телефон, и он автоматически повернулся.Также я хочу, чтобы это было мгновенно, без анимации.Если вы хотите знать, зачем мне это нужно, посмотрите мой другой вопрос на iPhone Dev – сохранение ротации интерфейса.

Спасибо!!

Это было полезно?

Решение

Здесь вы хотите использовать аффинные преобразования для поворота вашего представления. Я добился этого, хотя в данный момент у меня нет кода перед глазами.Если вы выполните простое вращение, вы обнаружите, что ваш вид будет обрезан, а не в центре, как вам хотелось бы. Здесь вам нужно установить якорь вашего слоя (поиграйте со значением, пока не получите то, что хотите). чтобы представление появилось там, где вы хотите.Чтобы добиться этого, просто выполните поворот аффинного преобразования на 90 градусов и посмотрите, какое влияние оно оказывает на представление.Таким образом, вы сможете выяснить, где должна быть привязка слоев.Я опубликую здесь пример кода позже, когда буду перед своим Mac.Надеюсь, поможет

Другие советы

Я не совсем понимаю, что ты имеешь в виду

"...используя autoresizingMasks..."

Я сделал то же самое с анимацией UIIView.Также существует множество других техник.вот мой код:

-(void)rotateToLandscape
{
UIWindow *win = [[UIApplication sharedApplication]keyWindow];
if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
    [[[UIApplication sharedApplication] keyWindow] setBackgroundColor:[UIColor blackColor]];
    [UIView beginAnimations:@"View Flip" context:nil];
    [UIView setAnimationDuration:0.3];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    win.transform = CGAffineTransformIdentity;
    win.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
    win.bounds = CGRectMake(0.0f, 0.0f, 480, 320);
    win.center = CGPointMake(160.0f, 240.0f);
    [UIView commitAnimations];
}   

}

// Надеюсь, код не нуждается в пояснениях.
//Вы можете удалить операторы анимации, чтобы получить желаемый эффект (без анимации).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top