幾個月前我從蘋果網站上找到了一個非常棒的示例代碼。這個示例被稱爲「LargeImageDownsizing」,奇妙的是它解釋了很多關於如何從資源中讀取圖像然後在屏幕上呈現。
挖掘該代碼我發現了一些讓我感到不安的東西。尺寸縮小的圖像被傳遞到具有CATiledLayer的視圖,但是不會在每個圖塊上提供一張圖片來提高內存性能,只需設置圖塊大小然後加載圖像(我可以簡單地轉到概念)。
所以我的問題基本上是爲什麼?爲什麼使用CATiledLayer,如果它沒有以正確的方式餵食,他們可以使用正常的UIImageView ...
因此,我做了很少的測試,以瞭解我是否正確。修改代碼簡單地添加一個帶有圖像視圖的滾動視圖作爲子視圖並響應委託滾動視圖進行縮放。我去這些結論對測試設備和SIM:
CATiledLayer和UIImageView它們之間有什麼大不了的?
- -The內存的影響和佔用是完全一樣的,即使在變焦滾動操作,並沒有我的人吃驚的是,圖像在內存中解壓縮
- - 時間曲線說一個tileview需要更多的時間滾動縮放操作,而不是一個UIImageView過程中引出,並不會在所有再UIImageView的已繪製
- - 如果我送內存警告讓我驚訝兩種解決方案之間沒有任何變化(僅適用於SIM卡)
- -Testing核心動畫性能我避開60FPS
相同的結果
那麼是什麼這兩個視圖/層之間的交易我爲什麼要選一個,而不是其他的這些特殊情況? UIImageView似乎贏得了這場戰鬥。
我希望有人能幫助我理解這一點。
謝謝,爲了清晰起見,縮放圖像是1555px寬度,2236px高度。你的解釋確實有道理。 – Andrea 2012-01-15 18:22:11