2016-06-07 4 views
0

Мой вопрос должен быть простым, но я не смог найти решение.iOS dim background Посмотреть весь экран

Я показываю модальный VC, и я хочу добавить тусклый вид фона.

Modal VC добавляется в качестве дочернего элемента в родительский VC. Родительский VC размещен в верхней части навигационного контроллера (topViewController)

В окне отображается Dim. Но тусклое представление не заполняет весь экран. Я устанавливаю фрейм для него с CGPointZero для начала, я попробовал отрицательное значение y, это не помогло. Это просто выглядит так. Также я добавил набор ограничений автоматического макета, установил значение false/true translatesAutoresizingMaskIntoConstraints, изменено clipToBounds.

Ничего не помогает, тусклый вид не охватывает весь экран.

Wrong display of dim view

я могу отобразить смутное представление в полном объеме, если не добавить модальный VC как ребенок, то я непосредственно использовать вид модальных VC, и добавить его в window. Это выглядит хорошо, но есть еще одна ошибка. Вот почему я добавляю модальный VC, как ребенок VC. Как заставить тусклый вид отображать весь экран.

В приложении может отображаться несколько модальных VC одновременно, поэтому секвенции (например, презентация VC) - не лучший выбор.

enter image description here

P.S. Вот описание ошибки:

. В случае добавления модального VC (UITableVC, помещенного в Nav. Controller), прямо в окно, просмотр отображает сдвинутую таблицу после возврата из BG, то есть в случае нахождения в BG и начала отображения модального VC из BG, после что переключение на передний план, часть заголовка таблицы (вопрос раскрывается) сдвигается, а навигационная панель модального VC расширяется, т. е. пересекается, заголовок таблицы не отображается полностью. Я не мог это исправить.

ответ

0

Поместите свой вид под видом навигационного контроллера:

UIView *dimView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
dimView.backgroundColor = [UIColor colorWithWhite:.4f alpha:.5f]; 
[self.navigationController.view addSubview:dimView]; 
[self.navigationController.view bringSubviewToFront:dimView]; 
Смежные вопросы