我使用以下在網絡中找到的代碼將畫面旋轉到風景模式。我不明白他們想做什麼。特別是它設定的範圍。有人可以解釋它在做什麼嗎?將畫面從肖像旋轉到風景
if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait)
{
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
UIScreen *screen = [UIScreen mainScreen];
CGRect newBounds = CGRectMake(0, 0, screen.bounds.size.height, screen.bounds.size.width - statusBarFrame.size.height);
self.navigationController.view.bounds = newBounds;
self.navigationController.view.center = CGPointMake(newBounds.size.height/2.0, newBounds.size.width/2.0);
self.navigationController.view.transform = CGAffineTransformConcat(self.navigationController.view.transform, CGAffineTransformMakeRotation(degreesToRadian(90)));
self.navigationController.view.center = window.center;
}
你一定會覺得很更好的服務讓窗口和UIViewControllers應用變換自己,然後處理任何看法改變了你通過實施具體需要視圖控制器上的適當方法。 –
根據我們的要求,我們必須手動完成 – Janaka
手動將轉換應用到導航控制器沒有什麼好的理由。你最終會在腳下射擊自己。但是,它正在做的是將轉換矩陣應用於90度旋轉的視圖。如果你這樣做,你的邊界將會出錯(對於新的屏幕高度它們將會太長,對於新的屏幕寬度它們將會太窄)上面的代碼更新了邊界以適應新的屏幕,將中心重新定位到新的邏輯屏幕中心將應用圍繞視圖中心的旋轉,然後將中心移回屏幕中心 –