iPhone Landscape Mode возвращает неправильные размеры просмотра - PullRequest
1 голос
/ 16 сентября 2010

Получение прямоугольных границ вида в ландшафтном режиме возвращает неправильные размеры:

(я знаю, что в альбомном режиме было много постов, но ничего об этой проблеме.)

Начиная с нового проекта шаблона 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

1 Ответ

1 голос
/ 17 сентября 2010

Похоже на проблему, связанную со строкой состояния.Тем не менее, у меня нет хорошего решения для вас.

В дополнение к просмотру рамки можно посмотреть границы.Иногда это дает лучшую информацию.

...