Получение прямоугольных границ вида в ландшафтном режиме возвращает неправильные размеры:
(я знаю, что в альбомном режиме было много постов, но ничего об этой проблеме.)
Начиная с нового проекта шаблона UIView, я добавляю один UIView в ViewController в Интерфейсном Разработчике (в ландшафтном режиме) и устанавливаю размер вида width = 400, height = 200;
Однако, когда я добавляю точку останова в ViewController
Код:
- (void) viewDidAppear: (BOOL) animated {
CGRect viewRect = [testView bounds];
}
размеры w = 220, h = 380!
(Даже если на экране четко виден текст)
В myViewController.m я установил:
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); // home button on right
}
В myAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
application.statusBarOrientation = UIInterfaceOrientationLandscapeRight; //home on right
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
и в списке info.plist, который я установил: Начальная ориентация интерфейса = Пейзаж (правая домашняя кнопка)
Я не пытаюсь повернуть вид с помощью iPhone, это должно быть исправлено только в альбомной ориентации.
Есть ли обходной путь для этого? Мне нужно создать несколько CALayers в зависимости от правильного размера представления.
Спасибо
Steve