iPhone dev - вращать вручную - PullRequest
       13

iPhone dev - вращать вручную

2 голосов
/ 03 августа 2009

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

Спасибо !!

Ответы [ 2 ]

1 голос
/ 27 апреля 2012

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

"... используя маски авторазмера ..."

Я сделал то же самое с анимацией 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];
}   

}

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

1 голос
/ 03 августа 2009

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

...