Как в полноэкранном режиме DetailView UISplitViewController в альбомной - PullRequest
2 голосов
/ 27 августа 2011

У меня есть UISplitViewController с общим detailView (правая сторона).

Я добавляю кнопку в detailView в альбомной ориентации, когда кнопка нажата, masterView (левая сторона) будет скрыт и detailView станет полноэкранным .так же, как поведение приложения Dropbox для iPad

Теперь я могу скрыть masterView, но не могу изменить detailView в полноэкранный режим, просто установив рамку detailviewController.view.

widthлевой стороны splitview = 321, а detailviewController.view.frame - {{321,0}, {703, 748}} до изменения.

Если я изменю detailview.frame с помощью следующего кода, никаких изменений не произошло .

self.frame = CGRectMake(0, 0, 1024, 748);

И он изменит положение, если я использую следующий код, но это не полноэкранный режим .

self.frame = CGRectMake(0, 0, 703, 748);

Я обнаружил, что если я изменю рамку с большим размером (например, 704), чем ее исходная ширина, положение рамки не изменится.

Как сделать подробный вид, чтобы он стал шириной всего экрана при альбомной ориентации?Будем очень благодарны за любые предложения.

Ответы [ 3 ]

0 голосов
/ 17 мая 2012

В приведенной ниже ссылке я нашел решение для создания настраиваемого контроллера splitview, вы можете настроить его, чтобы получить желаемый эффект.Я не думаю, что можно изменить размер кадра основного и подробного представления обычного UISplitViewController (я пробовал в iOS5, это не сработало).

Пользовательский SplitView

-anoop

0 голосов
/ 28 декабря 2017

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

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{
    self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}

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

0 голосов
/ 31 августа 2011

Я вижу еще одну возможность использовать + transitionFromView: toView: duration: options: завершение: метод UIView для обмена представлением UISplitViewCintroller для другого полноэкранного экземпляра UIView в представлении UIWindow

...