我需要在Xamarin.Forms中更改视图的方向而无需旋转设备,以便视图应像横向模式一样进行布局。
有什么办法可以实现?在Xamarin.Forms或Xamarin.iOS中?
答案 0 :(得分:1)
对于 iOS 中的 Dependency Service ,请编写以下方法
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;
}
}
希望有帮助!