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了。
使用方法同過去一模一樣,既可以在xib或storyboard中直接指定,也可以在程式碼中用
self.logoImageView.image = [UIImage imageNamed:@"logo"];
來進行設定。
值得注意的是,它本質上還是個png,所以如果你“機智”地加了pdf字尾,就像下面這樣,那麼很遺憾,這就就上了蘋果的當。
self.logoImageView.image = [UIImage imageNamed:@"logo.pdf"];
上面這個樣子是無法顯示出來的。
編譯後,可以清楚地看到,三種大小的圖片和以往一樣面熟,如圖:
是的,已經沒有了,對於開發人員來說,除了使用上更方便外,幾乎和過去一模一樣。
For UI人員
目前Xcode只支援PDF這和種向量圖格式,無論用AI或PS都可以,只要是可以放大不變形的都可以,比如路徑或向量字型。
儲存時設定為PDF格式即可。
(AI)
(PS)
不過要注意的是,務必去掉“保留編輯功能”前面的勾,見下圖:
另外,雖然向量圖檔案一定程度上放大並不會變形,比如這個2×2畫素的
在放大後仍然很清晰:
但是在編譯完成時,卻被XCode轉成了真的只有2×2畫素的png:
解決的方法是在建立時設定畫布的尺寸為@1x的大小基準,也就是假設螢幕解析度為320*480的大小來做。這一點可能和當前流行的以640寬度或750寬度做有些不同,我這裡的方法也不是最終方法,這個還要由設計師來自行評估。
這樣當建立一個比如150x150px的pdf時:
XCode就會以它為基準自動生成適合不同解析度的@1x,@2x,@3x的png圖片了:
(150×150)
(300×300)
轉載來自:http://lugede.cn/ios-use-vector-pdf-image