2013-04-08 2 views
2

Недавно я сделал заказное оповещение, которое является подклассом UIWindow. Я пытаюсь повернуть предупреждение, когда UIViewController находится в альбомной ориентации. Я могу повернуть его успешно, однако у меня возникли проблемы с его перемещением, чтобы его происхождение находилось в верхнем левом углу экрана. У меня есть следующий код ниже:Перемещение UIWindow после поворота

CGRect mainScreenBounds = [[UIScreen mainScreen] bounds]; 
    UIDeviceOrientation deviceOrientation = [[UIApplication sharedApplication] statusBarOrientation]; 
    if (deviceOrientation == UIDeviceOrientationPortrait) 
    { 
     self.frame = CGRectMake(0,0, mainScreenBounds.size.width, mainScreenBounds.size.height); 
    } 
    else 
    { 
     self.frame = CGRectMake(0,0, mainScreenBounds.size.height, mainScreenBounds.size.width); 

     if (deviceOrientation == UIDeviceOrientationLandscapeLeft) 
     { 
      self.transform = CGAffineTransformRotate(self.transform, M_PI/2); 
     } 
     else 
     { 
      self.transform = CGAffineTransformRotate(self.transform, -M_PI/2); 
     } 
     self.center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2); 
    } 

Установка center, кажется, не делать ничего по какой-либо причине. Кто-нибудь знает, что я могу делать неправильно здесь?

ответ

-5

В приложении не должно быть более одного UIWindow. Уже есть один. Reimplement, подклассификация из UIView.

Из документов UIWindow: «Если приложение не может отображать содержимое на экране внешнего устройства, приложение имеет только одно окно».

+0

Мне нужен UIWindow, поэтому я могу поместить его в строку состояния, такую ​​как UIAlertView. –

+0

, если вы хотите, чтобы строка состояния исчезла, установите ее, чтобы она исчезла. – bshirley

+0

Не хотите, чтобы это исчезло, вы знаете, как при появлении предупреждения появляется черный оттенок по экрану? Это то, что я собираюсь, и для этого нужен UIWindow. –

Смежные вопросы