Принудительно применить autoresizingMask к UIView - PullRequest
3 голосов
/ 27 августа 2010

У меня есть представление уведомлений, которое я добавляю в окно приложения после запуска, поэтому оно зависает над всеми другими представлениями.

Когда пользователь поворачивает устройство, представление не изменяет размеры автоматически, как те, которые принадлежатUIViewController.

Есть ли способ вручную запросить применение autoresizingMask представления?Или, как альтернатива, как можно изменить размер вида без контроллера вида при повороте устройства?

Ответы [ 3 ]

1 голос
/ 10 апреля 2012

Я обнаружил, что представления, добавленные в окно приложения, даже не вращаются, не говоря уже об изменении размера.

Этот вопрос был задан и получен ответ для Ориентация в UIView добавлена ​​в UIWindow : добавить представление уведомлений в первое подпредставление окна.

UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) 
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
[[[window subviews] objectAtIndex:0] addSubview:myView];

И это также решает вашу проблему, теперь размер вашего уведомления должен быть изменен в соответствии с его масками.

0 голосов
/ 27 августа 2010

Вы установили:

view.autoresizesSubviews = YES;

в соответствующем суперпредставлении?

0 голосов
/ 27 августа 2010

autoResizingMask не имеет ничего общего с вращением как таковым.Он просто определяет размер представления при изменении его суперпредставления.

Это должно работать, если вы добавите контроллер представления верхнего уровня, с размером представления, равным размеру окна и содержащим все другие представления.Тогда ваше представление уведомлений будет подпредставлением представления верхнего уровня (подключенного к контроллеру представления) и должно автоматически поворачиваться.

...