2016-06-11 4 views
2

Я работаю над пользовательским уведомлением, которое должно отображаться на всем. Чтобы достичь этого Я реализовал его как подзаголовок отдельного интерфейса UIWindow, и все работает отлично, за исключением макета: я использую классы размера, а макет просто игнорирует его. Вот код я использую для установки на мой взгляд:UIView с xib игнорирует классы размеров

NotificationView *notificationView = [[[NSBundle mainBundle] loadNibNamed:@"NotificationView" 
                    owner:self 
                    options:nil] firstObject]; 
UIWindow *window = [[UIWindow alloc] initWithFrame:frame]; 
// Additional window setup.. 

[window addSubview:notificationView]; 
+0

Вы пытаетесь добавить уведомление в свой self.view? –

+0

@NiravDoctorwala, у меня нет контроллера вида –

+0

Это не ваш первый экран справа. Вам нужно подсмотреть внутри текущего экрана. –

ответ

3

UPD: Я понял это

я добавлял свою notificationView к UIWindow непосредственно, в этом случае размерных классов игнорируются. Затем я попытался создать экземпляр соответствующего подкласса UIViewController (хотя мне он действительно не нужен) и добавить его в свой self.view, в этом случае классы размера работают должным образом.

Заключение: представление должно быть в иерархии представлений UIViewController для поддержки классов размеров.

+0

Большое вам спасибо! –

0

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

Читайте здесь для получения дополнительной информации:

https://adoptioncurve.net/archives/2014/08/working-with-size-classes-in-interface-builder/

+0

Я добавил их в xib –

+0

Добавьте ограничения в код, добавив его в супервизор, автоматически сгенерированные ограничения сохраняют текущий кадр. Когда супервизор изменяет размеры, они изменяют его размер в соответствии с маской авторезистора –

Смежные вопросы