У меня есть приложение со многими представлениями. Я хочу, чтобы только несколько представлений смогли вращаться для озеленения, когда устройство повернуто. Я узнал, что не мог использовать (BOOL)shouldAutorotateToInterfaceOrientation
потому что это повернуло бы каждое представление в моем приложении. Я нашел решение этой проблемы здесь на Переполнении стека, но теперь у меня есть другая проблема для контакта с.
Представление вращается, когда я поворачиваю устройство, но оно все еще показывает представление, как будто это было все еще в режиме портрета (прямо вверх и вниз). Вершина и нижняя часть представления отключены. Существует ли способ иметь представление, поворачивают и также корректируют его размер для установки новой ориентации? Я также нашел это, но не смог заставить это работать.
Вот мой код для того представления:
@implementation businessBank
@synthesize webView, activityIndicator;
- (void)viewDidLoad {
[super viewDidLoad];
NSString *urlAddress = @"website_url";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
}
- (void)didRotate:(NSNotification *)notification {
UIDeviceOrientation orientation = [[notification object] orientation];
if (orientation == UIDeviceOrientationLandscapeLeft) {
[self.view setTransform:CGAffineTransformMakeRotation(M_PI / 2.0)];
} else if (orientation == UIDeviceOrientationLandscapeRight) {
[self.view setTransform:CGAffineTransformMakeRotation(M_PI / -2.0)];
} else if (orientation == UIDeviceOrientationPortraitUpsideDown) {
[self.view setTransform:CGAffineTransformMakeRotation(M_PI)];
} else if (orientation == UIDeviceOrientationPortrait) {
[self.view setTransform:CGAffineTransformMakeRotation(0.0)];
}
}
Если у вас нет очень простого приложения, которое растягивается в соответствии с ориентацией, автоматическое изменение размера в любом случае не подойдет вам - вам действительно нужно создать два отдельных представления для двух ориентаций.
Чтобы получить помощь по автоматическому изменению размеров представлений, вы можете проверить это руководство:
http://theappleblog.com/2009/04/08/iphone-dev-sessions-how-to-make-an-orientation-aware- clock /
Чтобы использовать более надежный метод переключения представлений, этот учебник должен помочь вам:
http://icodeblog.com/2008/08/03/iphone-programming-tutorial-transitioning-between-views /