![](/img/trans.png)
[英]Xamarin iOS ObserveOrientationDidChange Landscape or Portrait
[英]Xamarin iOS 10 landscape
我的目標是在單個視圖控制器上強制橫向方向 ,而不是整個應用程序(確切地說:我想讓我的相機視圖控制器僅為橫向)
我一直在遇到無法使用Xamarin.iOS 強制iOS 10設備上的風景的問題。
我已經通過在視圖控制器中覆蓋以下方法來在iOS 9或更低版本上工作 ,該控制器應該僅在橫向上。 但是,似乎沒有在iOS 10上調用這些方法。
public override bool ShouldAutorotate()
{
return true;
}
public override UIInterfaceOrientation PreferredInterfaceOrientationForPresentation()
{
return UIInterfaceOrientation.LandscapeLeft;
}
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
{
return UIInterfaceOrientationMask.Landscape;
}
我也測試過從ViewDidLoad調用這個方法(我不再使用這行了,不知道它是否有任何影響)
//AppDelegate
public void ChangeOri()
{
UIDevice.CurrentDevice.SetValueForKey(new NSNumber((int)UIInterfaceOrientation.LandscapeLeft), new NSString("orientation"));
}
有關可能的解決方法的任何建議嗎?
我終於找到了答案,它與iOS 10本身無關。
我在iPad設備上遇到了這個問題。 iOS9或更高版本的iPad已經獲得了一項新功能:“多任務處理”。 請參閱此主題以了解更多信息。
關鍵是,當您的應用程序設置為多任務時,您無法再從代碼更改方向。 您必須為整個應用啟用全屏模式,以便調用我在上面的問題中發布的代碼行。
在你的plist中設置:UIRequiresFullScreen為true。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.