2014-03-06 99 views
4

我使用Path的FastImageCache庫(https://github.com/path/FastImageCache)爲了在UIImageView s中使用緩存的預先調整大小的圖像。定義FastImageCache FICImageFormats的最佳做法?

要使用FIC,您需要定義FICImageFormat,其中包含一系列數據,包括圖像大小。爲了獲得最佳性能,此圖像大小應該與圖像將被用於的UIImageView的大小相同。

這引起雞與蛋類問題:應該設置的代碼FIC(在AppDelegate中,或者你爲應用程序執行其他基本初始化工作的地方,大概?)知道其餘應用程序中UIImageView的大小?這對你的應用程序的啓動代碼與UI實現細節非常緊密的耦合具有明顯的缺點。

另一種方法是,你可以有你的用戶界面實現定義這樣的方法如

+(NSArray *)imageFormats; 

這將返回一個表示將由UI的該位需要所有圖像格式FICImageFormat對象的陣列的協議。然後,啓動代碼只需知道哪些類實現了該協議即可獲得應用程序所需的完整圖像格式列表。

這第二種方法有可能重複FICImageFormat S的缺點。對於具有相同尺寸的相同圖像格式族,使用兩個(或更多!)圖像格式將是非最佳的。然後你會多次緩存完全相同的數據。

您能想到的其他方法嗎?最佳實踐?歡迎所有的想法!

回答

0

我認爲可以幫助這裏是在設計層面開始 - 你應該與設計師的一組特定的圖像格式的任何圖像的家人同意,然後你將有你所有的圖像格式和家庭中央列表反正你的風格指南。

如果你的代碼是在AppDelegate中或在視圖層,因爲無論是視圖層也沒有啓動代碼真正確定哪些格式存在不要緊,那麼這麼多,但你的風格指南。這不再是實現細節,而是外部規範的一部分。