我想在出現特定視圖時更改設備方向。我獲得了有關在方向更改時要採取的操作的很多信息,但我沒有得到如何以編程方式更改設備方向本身。請注意,我的其他視圖必須保持默認方向。更改特定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. 當設備方向改變時,UIViewController不會更新視圖的約束
- 6. 如何更改設備方向
- 7. IBM Worklight:更改設備方向
- 8. 更改攝像頭和設備方向
- 9. 如何停止設備方向更改
- 10. 設備方向更改時,自定義鍵盤高度不會更改
- 11. 如何檢測設備是否朝向特定點方向
- 12. 使用Swift更改子類中方向更改的自定義視圖框架
- 13. 默認設備旋轉關閉時,是否可以更改設備的方向?
- 14. 約束條件不隨設備方向更改而更新
- 15. 設備方向更改重置方位計算輸出
- 16. 更改基於設備的方向後臺位置
- 17. 更改設備方向時的視頻播放
- 18. 在打開的設備中更改頁面尺寸(方向)
- 19. jQuery Mobile - 保持設備方向更改的滾動位置?
- 20. 根據設備類型設置設備方向
- 21. 手動改變UIViewController的方向? iPhone
- 22. 特定於設備的加載類別
- 23. 固定方向的設備旋轉Android
- 24. 我可以通過服務更改設備的定向屏嗎?
- 25. 修改特定子類的類
- 26. UIViewController的動畫設置錯誤方向
- 27. 如何鎖定設備上的方向改變?
- 28. 在隱藏的UIViewController的UITabBar中更改方向
- 29. iphone設備方向
- 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