这篇文章http://cobworks.ca/2010/04/19/why-android-market-has-no-games/表明它没有,但我希望自4月以来可能会发生一些变化.
我希望这是一个简单的问题.如果我有一个UINavigationController并且我将一个新的视图控制器推入到具有动画过渡的堆栈中,我如何检测动画何时完成并且新的视图控制器在屏幕上?
我有几个场景,我需要推送一个新的控制器,然后必须进行长时间运行.我想首先推送新视图,所以在我开始长时间阻止主线程之前屏幕上有一些东西.如果我在我的长期运行任务之后立即执行推送,则视图将不会显示,直到两者完成后,主线程才能再次处理事件.
因此,一旦动画完成并且视图在屏幕上,我想要做的就是能够在新控制器中检测到,然后启动任务.
我希望能够检查可能已经或可能没有从其原始方向旋转的UIView实例(例如,通过用户旋转设备)并确定"真实"宽度和高度是什么."真"在这里的意思,如果在纵长的iPad的看法是768x1024的转动之前,导横盘之后我会计算新的宽度为1024,新高度为768.
看来,如果我将视图的变换应用于它的frame属性,如下所示:
CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);
Run Code Online (Sandbox Code Playgroud)
我得到了理想的结果.然而,Apple的文档声明如果视图的变换不是身份变换,UIView :: frame是未定义的,那么依靠这个计算可能不是一个好主意?