这是我在这里的第一篇文章-但我已经阅读了很长时间。非常感谢这个网站!:-)
我目前正在将我的基于 XNA 的 2D 引擎从 WP7 移植到 iOS (5)。我宁愿不直接使用 OpenGL,因为我更愿意把时间花在游戏上而不是技术上。所以我很高兴得到一个不涉及 OpenGL(直接)的答案。
问题:当我将 UIImageView 添加到另一个 UIView 时,在 UIImageView 被绘制之前会有短暂的延迟。我假设,这是由于 UIView 类在内部将所有内容转换为 OpenGL 然后绘制之前执行的缓存。
我想要什么:告诉 UIView(超级视图)对所有子视图执行所有必要的计算,然后一次绘制它们。目前我观察到的行为是:计算 uiimageview_1,绘制 uiimageview_1,计算 uiimageview_n,绘制 uiimageview_n,...
我想要的虚拟代码:
// put code here to tell superview to pause drawing
for (int i = 0; i < 400; i ++)
{
add UIImageView[i] to superview;
}
// put code here to tell superview to draw now
可能的解决方法(但来自 C# 和 Windows,我不知道如何在 iOS 上的 Objective-C 中有效地实现它) - 我担心这段代码效率低下,因为必须传输大块 RAM(每帧!)视网膜以原始分辨率显示:
for (int i = 0; i < 400; i ++)
{
add UIImageView[i] to superview;
}
// put code here to get a bitmap in ram from superview
// return bitmap and draw it in a view for the scenery/canvas
任何有关如何解决此“弹出”问题的帮助将不胜感激。
谢谢