如何在不旋转设备的情况下更改Xamarin.Forms中的视图方向?
我需要在不旋转设备的情况下更改Xamarin.Forms中视图的方向,以便视图的布局与横向模式中的布局相同如何在不旋转设备的情况下更改Xamarin.Forms中的视图方向?,xamarin,xamarin.forms,xamarin.ios,Xamarin,Xamarin.forms,Xamarin.ios,我需要在不旋转设备的情况下更改Xamarin.Forms中视图的方向,以便视图的布局与横向模式中的布局相同 有什么办法可以实现吗?使用Xamarin.Forms或Xamarin.iOS?对于依赖项服务中的iOS,请编写以下方法 public void ChangeLandscapeOrientation() { UIDevice.CurrentDevice.SetValueForKey(new NSNumber((int)UIInterfaceOrientation.Landscap
有什么办法可以实现吗?使用Xamarin.Forms或Xamarin.iOS?对于依赖项服务中的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;
}
}
希望有帮助 此代码在模拟器中工作,但在设备中不工作。有什么想法吗?@Divakar我也添加了用AppDelegate编写的代码。试试看!在应用程序加载和手动更改方向时,该覆盖甚至都未命中。您的意思是断点,对吗?是的,我已经将断点放在那里并进行了检查。未调用覆盖。@Divakar它是一个默认的覆盖方法,即使不定向设备或模拟器也会被调用。你能检查一下你的info.plist支持的界面方向吗。