0

Мое приложение поддерживается только в режиме Портрет. У меня есть требование, что нужно вращать конкретный UIView только в соответствии с ориентацией устройства.Повернуть просмотр только в ios

Не могли бы вы помочь мне?

+0

Что вы имеете в виду только UIView? – ezcoding

+0

посмотреть только ... не viewController –

+0

Вам нужно повернуть вид, когда меняется ориентация устройства? – ezcoding

ответ

0

После долгой попытки я нашел ответ, используя CGAffineTransform ..

- (void)deviceOrientationDidChange:(NSNotification *)notification { 
    //Obtain current device orientation 
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 

    CGFloat angle; 
    switch (orientation) { 
     case UIDeviceOrientationPortraitUpsideDown: 
      angle = M_PI; 
      break; 
     case UIDeviceOrientationLandscapeRight: 
      angle = - M_PI_2; 
      break; 
     case UIDeviceOrientationLandscapeLeft: 
      angle = M_PI_2; 
      break; 
     case UIDeviceOrientationPortrait: 
     default: 
      angle = 0.f; 
      break; 
    } 
    animationView.transform= CGAffineTransformMakeRotation(angle); 
    animationView.frame = self.view.frame; 
} 
0

Добавить ниже дать код в viewdidload или инициализации

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(deviceOrientationDidChange:) name: UIDeviceOrientationDidChangeNotification object: nil]; 

В функции deviceOrientationDidChange вы получите ориентацию устройства, в соответствии с этим вы можете обновить вид

- (void)deviceOrientationDidChange:(NSNotification *)notification { 
    //Obtain current device orientation 
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 

     //Do my thing 
} 
+0

спасибо. Это я сделал. Мне нужно повернуть вид в соответствии с ориентацией устройства. –

+0

@ YanoRatheez: CGAffineTransform transform = CGAffineTransformMakeRotation (угол); [yourView setTransform: transform]; Здесь задан угол, соответствующий ориентации вашего устройства. –

+0

если это поможет вам принять ответ .. :) –

0
if (interfaceOrientation == UIInterfaceOrientationPortrait) { 
    // set your view frame work for portrait mode 

} 
else { 
// set new frame of view for landscape mode. 
} 

Надеется, что вы Получите эту идею. благодаря

+0

Извините .. Я не понял этого. Мне нужно поворачивать представление только с помощью CGAffineTransform или другого. –

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

  • Нет связанных вопросов^_^