iPad Modal UIView Контроллеры позиции

Как мне позиционировать этот ViewController поверх детального вида модально? Я хочу, чтобы он был выровнен по правому краю, чтобы вы могли видеть часть навигации серым.

[self.window addSubview:self.splitViewController.view];
MyModalViewController *modalvc= [MyModalViewController new]; //brevity
modalvc.modalInPopover = YES;
modalvc.modalPresentationStyle = UIModalPresentationStylePageSheet;
modalvc.view.autoresizeMask = UIViewAutoresizeFlexibleRightMargin;
[self.splitViewController presentModalView:modalvc animated:NO];
[self.window makeKeyAndVisible];

Я также проверил в MyModalViewController, если я устанавливаю маску представлений, а я нет, и при этом он не получает магические значения из Nib.

Регулировка кадра до настоящего времени (с использованием modalvc.view.frame) ничего не делает.

Настройка кадра после настоящего, кажется, дает сумасшедшие результаты, и мне действительно нужно, чтобы он был на половину ширины в ландшафте... портрет - это нормальное поведение.

редактировать
изображение сбило с толку людей, поэтому я вынул его, я не хочу, чтобы модальное представление имело размер экрана, я хочу оставить его UIModalPresentationStylePageSheet, но его ORIGIN перемещен вправо, чтобы он охватывал часть подробного вида в альбомной ориентации

2 ответа

Решение

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

modalPresentationStyle это то, что контролирует это. Вы установили его на UIModalPresentationStylePageSheet, который устанавливает высоту к высоте экрана, а ширину к ширине экрана в портретной ориентации, точно так же, как на скриншоте.

Я думаю, что единственный способ получить полную ширину в ландшафте - это использовать UIModalPresentationFullScreen, См. Ссылку UIViewController для получения дополнительной информации.

Другие вопросы по тегам