我已經工作了一段時間並已發佈遊戲的引擎現在正在啓動我當前的項目,並立即旋轉UIView它的方式。我創建代碼的接口,這是它的樣子:如果我想發動在UIInterfaceOrientationLandscapeLeft應用我的應用程序開始顛倒
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
CGRect screenBounds = [[UIScreen mainScreen] applicationFrame];
CGRect windowBounds = screenBounds;
windowBounds.origin.y = 0.0;
UIWindow* win = [[UIWindow alloc] initWithFrame:windowBounds];
win.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
UIMyView* view = [[UIMyView alloc] initWithFrame:screenBounds];
UIMyViewController* controller = [[UIMyViewController alloc] init];
controller.view = view;
view.multipleTouchEnabled = true;
view.windowWrapper = this;
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[win addSubview:view];
...
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation;
{
s32 validOrientations = ((cViewMM*)(self.view)).windowWrapper->GetValidOrientations();
if (toInterfaceOrientation == UIInterfaceOrientationPortrait && (validOrientations & 0x01))
return true;
if (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown && (validOrientations & 0x02))
return true;
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft && (validOrientations & 0x04))
return true;
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight && (validOrientations & 0x08))
return true;
return false;
}
問題只occures。通過應用程序進行調試時,它看起來像當我試圖將我的視圖添加到窗口內部時,shouldAutorotateToInterfaceOrientation:被多次調用。首先使用返回false的UIInterfaceOrientationPortrait,然後返回true的UIInterfaceOrientationLandscapeRight(因爲它是有效的方向),然後返回true(因爲它是有效的方向,它是設備的當前方向),然後返回UIInterfaceOrientationLandscapeLeft。
哦,更具體的說,這隻發生在iPhone而不是iPad上。他們使用相同的代碼來設置這個視圖。
我在做什麼錯?
- 編輯 -
OK我錯shouldAutorotateToInterfaceOrientation的執行:它是執行3次詢問UIInterfaceOrientationPortrait,2次UIInterfaceOrientationLandscapeLeft,再一次UIInterfaceOrientationLandscapeRight,再一次UIInterfaceOrientationLandscapeLeft。
GameCenter現在正在初始化,因爲它推動了一些額外的用戶界面,我認爲這可能是它,但事實並非如此。
'我做錯了什麼?'不站在你的頭上? =] –
如果它會幫助我會做到這一點。 – Aleks