簡體   English   中英

在iOS 8中的縱向鎖定應用程序中將單個視圖旋轉為橫向

[英]Rotate a single view to landscape in a portrait locked Application in iOS 8

我有一個應用程序在視圖控制器中使用縱向模式,除了一個,一個頁面只需要橫向(橫向左側或橫向右側)。 我怎樣才能做到這一點? 我嘗試了多種解決方案,即設置導航欄的方向模式,應用程序將轉向但不幸的是,這對我不起作用。 此外,我嘗試手動旋轉視圖,它工作,但當我單擊文本字段在其中寫入內容時,鍵盤顯示在縱向模式而不是橫向模式。

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

上面的代碼適用於我,但只有當我允許應用程序在橫向和縱向旋轉時,但這不是我想要的,因為這樣所有頁面都可以從縱向轉動橫向。

編輯:

我的情況是,我被分配了一個已經完成的項目。 制作這個應用程序的人一直在使用STNavigation Manager(我不是很確定那是什么)而不是self.navigationController push和pop作為東西。 所以shouldAutoRotate和這些代表在我的應用程序中不起作用。 其次,他還禁用了navigationBar並創建了自己的NavigationBar。

使用UIView的transform屬性進行旋轉:

-(void)viewWillAppear:(BOOL)animated
{
CGAffineTransform newTransform = CGAffineTransformMake(0.0,1.0,-1.0,0.0,0.0,0.0);         
self.view.transform = newTransform;

}

如果在應用程序中啟用了所需的橫向模式,則可以使用所使用的代碼強制應用程序進入所需的橫向模式,然后在返回到想要成為肖像的屏幕之前將其強制恢復為縱向。

我發現最好的方法是創建一個不允許旋轉的UINavigationController的子類

-(BOOL)shouldAutoRotate

然后在一個視圖中,我希望在VC級別上實現相同方法的landscape返回true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM