你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 使用asset catalog管理圖片資源

使用asset catalog管理圖片資源

編輯:IOS開發綜合

每年6月份的蘋果開發者大會上,都會有一些新的技術被發布出來,這些新技術雖然初看比較高冷,但稍微一研讀就會發現,大多數都是那種make life easy的很實用的技術,它要麼能讓我們寫更好的代碼,要麼能讓我們更好的寫代碼。總之,請不要害怕變化,大膽的去嘗試吧。

題外話到此,下面進入正題。

asset catalog是蘋果在2014年也就是iOS7系統上引入的用於APP內資源管理的輔助文件,我們可以把之前扔到bundle或者文件夾的圖片或者其他資源放入asset catalog中,由它來幫我們管理資源,除了管理上的便利意外,它還能夠帶來另一個很大的實惠:他能幫助我們實現APP瘦身(APP Thinning)。
目前主要通過兩種途徑來實現瘦身:
首先,使用asset catalog能為不同的平台、不同設備甚至相同類型的設備但是不同的配置(比如內存大小等)提供定制化的資源供給的解決方案,提供不同資源,當用戶下載APP的時候,只有該用戶的設備需要的資源才會被下載下來,這樣就減小了用戶下載的包的大小:

這裡寫圖片描述

對於游戲開發者而言,它還能提供對於資源的按需下載的功能(on demand resource or app slicing),通過對資源進行標記,能夠讓用戶在一開始下載APP的時候,可以下載一個尺寸較小的包,而隨著玩家打怪升級比如需要進入下一關,才下載下一關所需的資源。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20160501/20160501123151376.png" title="\" />

asset catalog提供對圖片和通用類型數據(generic data)的管理,對於通用資源的管理,這裡簡單提一下:你可以把你的APP需要使用的文本、二進制或者其他格式的文件拖進去,然後指定一下文件類型,就可以通過asset catalog來管理了。這裡我們主要討論的是它對圖片的管理能力。
可以通過Xcode像其他文件一樣方便的創建和使用。如下圖:
這裡寫圖片描述

通過打開文件夾我們可以看見asset catalog的真面目:它實際上並不是一種新類型的文件,而是一個文件夾,而文件夾裡面存放的也都是常見的文件:子文件夾、我們放入管理的圖片和管理圖片真實名稱和使用名稱的映射。

這裡寫圖片描述

打開一個json文本文件,我們就看到了asset catalog的核心了:它實際上就是用一個配置文件保存我們所有的關於這張圖片的信息

這裡寫圖片描述

關於asset catalog的使用,自己動手去用一用立馬就明白了,下面僅羅列出一些小技巧:
1. 如何解決多個asset catalog中的同名圖片資源的沖突問題:
首先j建議從根源上杜絕的話,可以對每個image set使用模塊統一的前綴,雖然有些繁瑣,但對於資源的規范、後期的維護是一勞永逸的。
另外一個方法就是在asset catalog中使用命名空間namespace:如下圖

這裡寫圖片描述

然後在使用圖片的時候需要帶上命名空間前綴:

imageView.image = [UIImage imageNamed:@"folder1/Image"];
如何對asset catalog管理的圖片進行未使用圖片過濾。因為asset catalog都是簡單的文件夾+配置文件的方式,因此可以編寫腳本完成這種過濾。比如這裡提供了一些腳本
或者直接看一段代碼:
    #!/bin/bash

for i in `find . -name "*.imageset"`; do
    file=`basename -s .imageset "$i"`
    result=`ack -i "$file" --ignore-dir="*.xcassets"`
    if [ -z "$result" ]; then
        echo "$i"
    fi
done
利用asset catalog存儲圖片直接給某張圖片設置可拉伸區域,這樣你在代碼裡使用這張圖片的時候就不用手動設置(具體怎麼使用):

這裡寫圖片描述

如下這段代碼就可以省略了:

 

UIImage *originalImage = [UIImage new];
UIImage *stretchImage = [originalImage resizableImageWithCapInsets:UIEdgeInsetsMake(0.1, 0.1, 0.1, 0.1) resizingMode:UIImageResizingModeStretch];

利用asset catalog你可以給不同設配、不同配置、甚至不同屏幕狀態的機型匹配不同的圖片:

這裡寫圖片描述

示例1. 為不同機型添加不同的配置圖片

這裡寫圖片描述
示例2. 為iPhone機型的1GB和2GB內存版本添加不同的圖片

這裡寫圖片描述

實例3. 為不同屏幕寬度的設備配置不同的圖片(需要autolayout + sizeclass的支持)
5. 利用asset catalog可以將圖片直接配置成model image,然後添加上不同的渲染顏色:

這裡寫圖片描述

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved