Мое приложение поддерживается только в режиме Портрет. У меня есть требование, что нужно вращать конкретный UIView
только в соответствии с ориентацией устройства.Повернуть просмотр только в ios
Не могли бы вы помочь мне?
Мое приложение поддерживается только в режиме Портрет. У меня есть требование, что нужно вращать конкретный UIView
только в соответствии с ориентацией устройства.Повернуть просмотр только в ios
Не могли бы вы помочь мне?
После долгой попытки я нашел ответ, используя 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;
}
Добавить ниже дать код в 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
}
спасибо. Это я сделал. Мне нужно повернуть вид в соответствии с ориентацией устройства. –
@ YanoRatheez: CGAffineTransform transform = CGAffineTransformMakeRotation (угол); [yourView setTransform: transform]; Здесь задан угол, соответствующий ориентации вашего устройства. –
если это поможет вам принять ответ .. :) –
if (interfaceOrientation == UIInterfaceOrientationPortrait) {
// set your view frame work for portrait mode
}
else {
// set new frame of view for landscape mode.
}
Надеется, что вы Получите эту идею. благодаря
Извините .. Я не понял этого. Мне нужно поворачивать представление только с помощью CGAffineTransform или другого. –
Что вы имеете в виду только UIView? – ezcoding
посмотреть только ... не viewController –
Вам нужно повернуть вид, когда меняется ориентация устройства? – ezcoding