gpt4 book ai didi

iphone - 避免 UIView 创建非常大的绘图 Canvas

转载 作者:可可西里 更新时间:2023-11-01 03:50:12 26 4
gpt4 key购买 nike

我从 UIView 派生了一个类,才意识到由于内存的原因,它的大小确实存在限制。我在 UIScrollView 中有这个 UIView。

有没有办法让我在不是 UIView 派生类但我仍然可以在其中绘制并且可以非常非常大的 ScrollView 中放置一些东西?

我不介意必须响应 expose-rectangle 事件,就像使用传统窗口系统时那样。

谢谢。

最佳答案

UIScrollView 中的内容必须是 UIViews,由于内存原因,它们的大小受到限制。出于性能原因,UIView 维护一个位图后备存储,因此它必须分配与其大小成比例的内存。

处理此问题的通常方法是生成多个 UIViews 并在用户滚动时将它们换出。另一个版本是使用 CATiledLayer。不过,这些都没有为您提供“巨型 Canvas ”绘图模型。由你来分解事物并根据需要绘制它们。不过,这是通常的方法。

如果你真的想要一个巨大的 Canvas ,我的建议是 CGPDFContext。对这些有丰富的现有支持,特别是使用 UIWebView(请记住,您可以打开 data: URI 以避免从磁盘读取文件)。您可以通过应用仿射变换然后 CGContextDrawPDFPage 直接绘制它们的一部分。 CGBitmapContext 是另一种方法,但它可能需要更多的内存来进行少量绘图。

关于iphone - 避免 UIView 创建非常大的绘图 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7204943/

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