我正在使用Path的FastImageCache
库(https://github.com/path/FastImageCache),以便将已预先调整大小的图片缓存,以便在UIImageView
中使用。
要使用FIC,您可以定义包含大量数据的FICImageFormat
,包括图像大小。为了获得最佳性能,此图片大小应与图片将用于的UIImageView
的大小相同。
这就产生了一个鸡蛋和鸡蛋的问题:设置FIC的代码(在AppDelegate
中或者在你的应用程序的其他基本初始化工作的任何地方,应该是吗?)知道你应用程序其余部分UIImageView
的大小?这有一个明显的缺点,即应用程序的启动代码与UI实现细节的紧密耦合。
另一种方法是,您可以让UI实现一个定义方法的协议,例如
+(NSArray *)imageFormats;
将返回一个FICImageFormat
个对象数组,表示该位UI所需的所有图像格式。然后启动代码只需要知道哪些类实现了该协议,以获得应用程序所需的完整图像格式列表。
第二种方法具有潜在重复FICImageFormat
的缺点。对于具有相同尺寸的相同图像格式族具有两种(或更多种)图像格式将是非最佳的。然后你不止一次地缓存完全相同的数据。
您能想到的任何其他方法?最佳做法?欢迎所有的想法!
答案 0 :(得分:0)
我觉得这里有用的是从设计层面开始 - 你应该同意设计师为任何图像系列提供一套特定的图像格式,然后你就可以得到所有图像格式和系列的中心列表。无论如何你的风格指南。
如果您的代码位于AppDelegate或View层中,那么无关紧要,因为视图层和启动代码都不能确定存在哪种格式,而是您的样式指南。它不再是实现细节,而是外部规范的一部分。