gpt4 book ai didi

iphone - 我的应用程序开始颠倒

转载 作者:可可西里 更新时间:2023-11-01 06:17:41 25 4
gpt4 key购买 nike

我已经开发了一段时间并发布了游戏的引擎现在正在颠倒地启动我当前的项目,并立即按照预期的方式旋转 UIView。我用代码创建界面,这是关于它的样子:

- (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;
}

只有当我想在 UIInterfaceOrientationLandscapeLeft 中启动应用程序时才会出现问题。通过应用程序调试时,当我尝试在内部将我的 View 添加到窗口时, shouldAutorotateToInterfaceOrientation: 被多次调用。首先是返回 false 的 UIInterfaceOrientationPortrait,然后是返回 true 的 UIInterfaceOrientationLandscapeRight(因为它是有效的方向),然后是 UIInterfaceOrientationLandscapeLeft,它也返回 true(因为它是有效的方向并且是设备的当前方向)。

哦,更具体地说,这只发生在 iPhone 上,而不是 iPad 上。他们使用相同的代码来设置此 View 。

我做错了什么?

-- 编辑--

好吧,我对 shouldAutorotateToInterfaceOrientation 的执行是错误的:它执行了 3 次请求 UIInterfaceOrientationPortrait,2 次请求 UIInterfaceOrientationLandscapeLeft,然后一次请求 UIInterfaceOrientationLandscapeRight,再执行一次 UIInterfaceOrientationLandscapeLeft。

此时 GameCenter 已经在初始化,因为它正在推送一些额外的 UI,我认为可能是这样,但事实并非如此。

最佳答案

在您的 Info.plist 中检查支持的方向数组以纵向(右侧朝上)开始。如果它以任何不同的方向启动,您的应用程序将以该方向启动。

关于iphone - 我的应用程序开始颠倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com