我想在出現特定視圖時更改設備方向。我獲得了有關在方向更改時要採取的操作的很多信息,但我沒有得到如何以編程方式更改設備方向本身。請注意,我的其他視圖必須保持默認方向。更改特定UIViewController子類的設備方向
2
A
回答
0
[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];
請注意,這不是API文檔中的UIDevice框架的一部分,因此蘋果可能會拒絕使用這種應用程序。
0
您可以使用CGAffineTransforms
而不是私有API來更改視圖的方向。您必須更改UIStatusBarOrientation
方向以匹配新的方向並找到一個角度來旋轉視圖:
例如,如果您的視圖處於橫向方向並且您希望縱向回顯。
CGAffineTransform transform = CGAffineTransformIdentity;
switch ([[UIApplication sharedApplication] statusBarOrientation]) {
case UIInterfaceOrientationLandscapeLeft:
transform = CGAffineTransformMakeRotation(M_PI_2);
break;
case UIInterfaceOrientationLandscapeRight:
transform = CGAffineTransformMakeRotation(-M_PI_2);
break;
default:
break;
}
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
[UIView animateWithDuration:0.2f animations:^ {
[view setTransform:transform];
}];
[view setFrame:CGRectMake(0, 0, 320, 480)];
[view setNeedsLayout];
相關問題
- 1. Objective-C僅更改一個UiViewController的設備方向
- 2. 設備方向更改時更改UIImage
- 3. UIViewController遏制方向更改
- 4. 自定義UIViewController在設備旋轉時未收到方向更改通知
- 5. 方向鎖定時監聽設備方向更改
- 6. 當設備方向改變時切換到不同的UIViewController
- 7. 當設備方向改變時,UIViewController不會更新視圖的約束
- 8. iOS - 用設備方向更改視圖
- 9. 根據設備方向更改圖像
- 10. Android:檢測設備方向更改
- 11. 根據設備方向更改背景
- 12. 更改攝像頭和設備方向
- 13. 如何更改設備方向
- 14. Xcode 4.5設備方向更改?
- 15. 設備方向更改問題
- 16. 如何停止設備方向更改
- 17. IBM Worklight:更改設備方向
- 18. 如何確定iOS設備的方向*實際*更改?
- 19. 的UIViewController方向設置
- 20. 強制定位,同時保持允許設備方向更改?
- 21. 方向特定值不會更改
- 22. 設備方向更改時,自定義鍵盤高度不會更改
- 23. jquerymobile:確定設備方向
- 24. 在調用`setRequestedOrientation`後找到設備方向更改的方法
- 25. 使用Swift更改子類中方向更改的自定義視圖框架
- 26. 當設備方向改變時更改視圖控制器
- 27. 設備方向
- 28. 默認設備旋轉關閉時,是否可以更改設備的方向?
- 29. 約束條件不隨設備方向更改而更新
- 30. 設備方向更改重置方位計算輸出
這可行,但@micco注意到應用程序可能會被拒絕。 [@got nate](http://stackoverflow.com/users/145186/)證實了這一點:'感謝您將[app name]提交給App Store。不幸的是,它不能被添加到App Store,因爲它使用的是私有API。禁止使用iPhone開發者計劃許可協議第3.3.1節中概述的非公開API: 「3.3.1應用程序只能按照Apple規定的方式使用文檔化的API,並且不得使用或調用任何私人蜜蜂。」 包含在您的應用程序中的非公共API是setOrientation :.' – 2011-10-01 23:09:26