1. 程式人生 > >iOS使用向量圖的總結

iOS使用向量圖的總結

iOS使用向量圖的總結

 原理

蘋果最擅長使用障眼法,之前是障使用者的眼,現在又來障開發者。XCode6的這個“支援向量圖”,實際上只是編譯專案時,根據向量圖自動生成對應的@1x,@2x和@3x的png格式影象。

不過這也有好處,首先是不用擔心執行時擴充套件尺寸而降低效能,另外可以相容更早的iOS版本,經實際測試,除了iOS8外,iOS6、7是沒問題的,5目前沒有條件測試。

For Coding人員

對於開發者來說,使用非常方便。唯一要做的就是在Images.xcassets目錄中將圖片Image Set的Type改成“Vectors”,之後你會發現原先左邊的一排@1x,@2x,@3x的格子不見了,轉而只留下一個“Universal”。此時將美術人員提供的pdf檔案,像以往那樣拖進來就OK了。

ios_vector_1

使用方法同過去一模一樣,既可以在xib或storyboard中直接指定,也可以在程式碼中用

self.logoImageView.image = [UIImage imageNamed:@"logo"];

來進行設定。

值得注意的是,它本質上還是個png,所以如果你“機智”地加了pdf字尾,就像下面這樣,那麼很遺憾,這就就上了蘋果的當。

self.logoImageView.image = [UIImage imageNamed:@"logo.pdf"];

上面這個樣子是無法顯示出來的。

編譯後,可以清楚地看到,三種大小的圖片和以往一樣面熟,如圖:

ios_vector_2

是的,已經沒有了,對於開發人員來說,除了使用上更方便外,幾乎和過去一模一樣。

For UI人員

目前Xcode只支援PDF這和種向量圖格式,無論用AI或PS都可以,只要是可以放大不變形的都可以,比如路徑或向量字型。

儲存時設定為PDF格式即可。

ios_vector_3

(AI)

ios_vector_4

(PS)

不過要注意的是,務必去掉“保留編輯功能”前面的勾,見下圖:

ios_vector_5

另外,雖然向量圖檔案一定程度上放大並不會變形,比如這個2×2畫素的

ios_vector_6

在放大後仍然很清晰:

ios_vector_7

 

但是在編譯完成時,卻被XCode轉成了真的只有2×2畫素的png:

ios_vector_8

解決的方法是在建立時設定畫布的尺寸為@1x的大小基準,也就是假設螢幕解析度為320*480的大小來做。這一點可能和當前流行的以640寬度或750寬度做有些不同,我這裡的方法也不是最終方法,這個還要由設計師來自行評估。

ios_vector_9

 

這樣當建立一個比如150x150px的pdf時:

ios_vector_10

XCode就會以它為基準自動生成適合不同解析度的@1x,@2x,@3x的png圖片了:

ios_vector_11

(150×150)

ios_vector_12

(300×300)

ios_vector_13(450*450)


轉載來自:http://lugede.cn/ios-use-vector-pdf-image