gpt4 book ai didi

objective-c - UIViews 太多会导致延迟

转载 作者:行者123 更新时间:2023-12-01 19:15:06 24 4
gpt4 key购买 nike

我正在创建一个用于练习的应用程序,它是一个简单的绘图应用程序。用户沿着屏幕拖动他/她的手指,它会在 100 像素 x 100 像素的正方形中着色。

我目前通过在用户点击的地方创建一个新的彩色 UIView 来实现这一点,这是有效的。但是,经过一段时间的着色,会有很大的延迟,我认为这是因为作为主视图的 subview 的 UIView 太多。

无论有多少 UIView,我和其他类似地在拖动手指时创建 UIView 的人如何将延迟减少到完全没有。我也认为这可能是一项不可能完成的任务,那么像我这样的人怎么能在主视图中用手指沿屏幕拖动时为上述大小的立方体着色呢?

我知道这似乎是一个特定的问题,但我相信它可以帮助其他人了解如何减少延迟,如果有大量 UIViews 可用的性能降低选项较少。

最佳答案

一种方法是将每个正方形绘制成图像并显示该图像,而不是为每个正方形保留一个 UIView。

但是,如果您的绘图足够简单,您可以使用 OpenGL 来执行此操作,这要快得多。你应该看看苹果的GL Paint Sample Code它显示了如何在 OpenGL 中执行此操作。

如果您的绘图对于 OpenGL 来说过于复杂,您可以创建例如 CGBitmapContext,并在用户拖动手指时将每个正方形绘制到该上下文中。每当您在该位图中绘制一个新正方形时,您都可以将位图转换为图像(通过 CGBitmapConxtextCreateImage)并将该图像显示为 UIImageView。

关于objective-c - UIViews 太多会导致延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13870077/

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