UILabel с CGAffineTransformMakeRotation на основе ориентации?(ARC, Раскадровка, LLDB) - PullRequest
0 голосов
/ 28 января 2012

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

Я работаю с CGAffineTransformMakeRotation, чтобы перевернутьUILabel 180 градусов, я хочу вращение на основе UIOrientationPortrait и UIOrientationPortraitUpsideDown.Я получаю 1/2 результата: когда пользователи переворачивают вверх дном (из портрета), метка трансформируется в 180 и тоже переворачивается (все еще лицом к кнопке домой [Важно])

НО

когда я поворачиваю его обратно в «Портрет», этикетка остается в состоянии перевернутого вращения и не остается с кнопкой «Домой».Вот что мне нужно помочь ....

Вот код, который у меня есть:

#define degreesToRadian(x) (M_PI * (x) / 180.0)

...

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    TranslateLabel.transform = CGAffineTransformMakeRotation(degreesToRadian(180));
}

Ответы [ 2 ]

2 голосов
/ 28 января 2012

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

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
  switch(toInterfaceOrientation){
    case UIInterfaceOrientationPortrait:
      TranslateLabel.transform = CGAffineTransformIdentity;
      break;
    case UIInterfaceOrientationPortraitUpsideDown:
      TranslateLabel.transform = CGAffineTransformMakeRotation(degreesToRadian(180));
      break;
  }
}

Таким образом, он будет поворачивать этикетку вверх дном, когда устройство перевернуто, и вернетвернуться в нормальное состояние, когда устройство находится в портретной ориентации.

0 голосов
/ 28 января 2012

Я думаю, что вы хотите включить toInterfaceOrientation, установив преобразование, как у вас выше, если ориентация UIInterfaceOrientationPortraitUpsideDown и CGAffineTransformIdentity, когда UIInterfaceOrientationPortrait. (Предполагается, что вы не разрешаете вращение в других направлениях.)

...