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 для получения дополнительной информации.