OGeek|极客世界-中国程序员成长平台

标题: iphone - 将 UIImage 用于 CGContextSetFillColorWithColor 时突然出现内存峰值 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:25
标题: iphone - 将 UIImage 用于 CGContextSetFillColorWithColor 时突然出现内存峰值

我正在使用图像来填充当前图形上下文中的颜色,使用以下语句:

CGContextSetFillColorWithColor(aContext,[[UIColor colorWithPatternImage:[UIImage imageNamed:kRunnerGradientedBackgroundImage]] CGColor]);

这个语句突然将我的内存使用量从 1.3 MB 增加到 5.6 MB。如果我释放 UIImage 对象,那么它会下降到 1.3 MB,但由于图像对象的保留计数已经为 0,我不能这样做。

有什么建议可以控制这种突然的内存峰值吗?



Best Answer-推荐答案


模式数据必须加载到内存中才能使用。没有解决这个问题。你可以尝试一个更小的模式。完成图案绘制后,还可以尝试将上下文的填充颜色设置回简单的纯色。

添加:当您在其中绘制图案或图像时,图形上下文本身也可能变得更大(以保存图案图像所需的所有像素)。尝试移除并释放包含图形上下文的 UIView 或 CGLayer。

关于iphone - 将 UIImage 用于 CGContextSetFillColorWithColor 时突然出现内存峰值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959248/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4