2012-10-21 62 views
0

我最近添加了一個UIViewController到我的iOS遊戲中,而且我遇到了一些困難。我將視圖添加到視圖控制器,當我旋轉手機時,視圖旋轉以保持直立。我的問題是,當視圖處於橫向模式時,視圖保持縱向模式,底部不在屏幕上,屏幕右側沒有任何東西。UIViewController旋轉視圖,但不會調整它的大小

這是我的UIViewController代碼:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 

     CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

     _glView = [[[OpenGLView alloc] initWithFrame:screenBounds] autorelease]; 
     [self.view addSubview:_glView]; 
    } 
    return self; 
} 

我該如何解決這個問題?

回答

3

我不確定你的OpenGLView類是什麼,但如果這是一些UIView的派生,你可以嘗試設置你的_glViewautoresizingMask(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)

+0

是的,它來自UIView。你的代碼確實有效。但是我的視圖的內容在寬度方面質量差(這是OpenGL),它告訴我我的遊戲被繪製爲縱向,然後拉伸。這是否是OpenGL被畫成肖像?我將如何使它景觀? – Bananable

+0

它在我看來像'glViewport'沒有自動調整大小,也許你需要在'didRotateFromInterfaceOrientation'手動執行。如果你這樣做,記得更新你的投影矩陣。也許你的'OpenGLView'類有一些方便的方法,比如'resize'或'reshape',除非它是你自己的實現。 –

+0

是的!謝謝,我只是在改變投影矩陣的值,我完全忘記了glViewport。你先生,是一個拯救生命的人。 – Bananable