Как изменить ориентацию вида в Xamarin.Forms без поворота устройства? - PullRequest
0 голосов
/ 06 июля 2018

Мне нужно изменить ориентацию вида в Xamarin. Формы, не поворачивая устройство, чтобы вид выглядел как в ландшафтном режиме.

Есть ли способ добиться этого? или в Xamarin.Forms или в Xamarin.iOS?

1 Ответ

0 голосов
/ 06 июля 2018

Для iOS в Службе зависимостей напишите следующий метод

public void ChangeLandscapeOrientation()
 {
     UIDevice.CurrentDevice.SetValueForKey(new NSNumber((int)UIInterfaceOrientation.LandscapeLeft), new NSString("orientation"));
     UINavigationController.AttemptRotationToDeviceOrientation();
 }

Вызывайте метод ChangeLandscapeOrientation везде, где это необходимо.

В AppDelegate.cs

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations(UIApplication application, UIWindow forWindow)
{

    var mainPage = Xamarin.Forms.Application.Current.MainPage;

    if (mainPage is YourPage || (mainPage is NavigationPage &&
                                   ((NavigationPage)mainPage).CurrentPage is YourPage) || (mainPage.Navigation != null &&
                                                                                             mainPage.Navigation.ModalStack.LastOrDefault() is YourPage))
    {
        return UIInterfaceOrientationMask.Landscape;
    }
    else
    {
        return UIInterfaceOrientationMask.Portrait;
    }
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...