如何在 VC.m 尝试加载之前保存使用 drawRect 绘制的图像?

Posted

技术标签:

【中文标题】如何在 VC.m 尝试加载之前保存使用 drawRect 绘制的图像?【英文标题】:How to save images drawn with drawRect BEFORE VC.m tries to load them? 【发布时间】:2014-01-06 09:53:43 【问题描述】:

感谢本网站为回答许多问题提供的所有帮助!

我在 UIView 的子类中覆盖了 drawRect,绘制了一堆图像并将它们保存为 PNG。

接下来我尝试加载图像以在 ViewController.m 中使用

终于让动画工作了,但有一段时间 VC 会在 Draw2D 保存图像之前尝试加载图像。发现 NSLog 可以很好地查看事件序列:

if ([self loadNamedImage:nameToLoad]) 
[image2set addObject:[self loadNamedImage:nameToLoad]];
NSLog(@"Loaded %@", nameToLoad8); 

loadNamedImage 是返回加载图像的方法。添加 if/exist 似乎可以解决一段时间的问题,但我想正确使用类似

performSelectorOnMainThread:withObject:waitUntilDone:;

// where to place command, which object, etc? 

尝试在 VC 中使用 sleep 语句,希望在尝试加载图像之前使用睡眠时间来保存图像。如何调整程序启动顺序以使其正常工作?

分贝

【问题讨论】:

【参考方案1】:

发现使用 viewDidAppear 与 viewDidLoad 解决了我一段时间的问题。

最近开始使用手势并按照建议重置模拟器设置以修复查找所需文件。现在图像不会再次加载,因为 viewDidAppear 尝试在覆盖的 DrawRect 方法绘制它们之前加载图片。尝试了不同的还原点,清理项目,并从模拟器中卸载应用程序无济于事:o(

非常感谢您在何​​处以及如何实施 addDependency、GCD 或其他解决方案的示例!

【讨论】:

以上是关于如何在 VC.m 尝试加载之前保存使用 drawRect 绘制的图像?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:如何在第三方脚本加载不同版本的 jQuery 之前保存我的 jQuery 版本?

如何确保在生成 PDF 之前加载图像?

加载 .RData 对象时出现问题:“文件‘pathway.path.RData’有幻数‘’不推荐使用 2 之前的保存版本”

如何在使用 gridfs 保存之前调整大小和图像?

在尝试加载 YouTube 视频之前,如何判断它是不是可嵌入?

如何使用 QSettings 保存和加载数据?