2013-09-25 58 views
11

假設我有一個包含100個圖像的項目,我已經將其導入到主Images.xcassets文件中的一個文件夾中。然後,我會從我的圖形設計人員那裏獲取這些圖像的67個更新 - 是否有將這些圖像更新推送到xcassets文件夾的簡單方法?Xcode5 xcassets - 如何批量替換圖像?

現在,我打開Xcode中的xcassets文件,並且對於每個更改的圖像,我都將新圖像拖入小的2x或1x框中 - 我必須這樣做67次!因爲xcassets文件夾中的每個圖像都有自己的子文件夾,所以我不能只用Finder(舊的方式)拖放文件。如果我沒有爲我的圖像使用xcassets文件,則可以通過這樣做輕鬆更新文件。但是xcassets應該「讓管理資產變得更簡單。」

好 - 那麼我錯過了什麼?

+2

我即將開始使用xcassets,但這看起來不太好...... –

+0

我認爲這個想法是,現在您將'* .xcassets'文件夾提供給您的設計師。並期望他/她能夠在不修改文件夾結構的情況下使用修改的圖像返回另一個。否則,您可以使用腳本解決該問題(如果圖像名稱相同) – nacho4d

回答

3

我不認爲你錯過了任何東西。資產文件夾根本沒有深思熟慮。他們引入了一些好處,但有更多的缺陷。

例如發射圖像。您無法通過資源爲不同的iOS版本設置相同的視網膜和視網膜4英寸啓動圖像,而無需Xcode複製文件。我想我們沒有其他選擇,只能通過bug reporter提交增強請求,並希望...

+0

同意。過去很容易編寫一個腳本來調整大小,並將所有2張圖像重命名爲1x,甚至3x至2x。我們以前總是把最大的尺寸作爲'主',並在圖像改變時運行腳本。真的很容易管理。 –

0

我已經開始在xcassets文件內的單獨文件夾中放置啓動圖像和應用圖標,因爲這些圖像很少更改。然後,每當我需要重新導入圖像或添加新圖像時,我會刪除現有圖像(除了單獨的文件夾),並重新導入所有內容(除了我設置的圖像外)。它工作乾淨,不會破壞我的任何代碼或故事板。

或者,您可以在查找器中拖放,只需在Finder中打開.xcassets文件夾並將圖像放入正確的目錄/圖像集中。 Xcode正在改變目錄結構,和過去類似,如果圖像保持相同的文件名,你可以在Finder中覆蓋它們,並且Xcode會更新。您不需要在Xcode中弄亂.xcassets文件就可以進行這種簡單的更改,儘管將每個圖像拖動到適當的圖像集中會有點痛苦,而且腳本可以使這方面的工作變得更容易。

4

無需Ruby中,可以運行這個shell腳本找到在起源文件夾文件(其中更新後的圖像),發現在你目的地文件夾(.xcassets文件夾同名的文件)並用更新後的版本覆蓋它們。很棒!

find ORIGIN FOLDER PATH NAME -name '*.png' | while read f; do f2=$(find DESTINATION  FOLDER PATH -name "${f##*/}"); [[ $f2 ]] && cp "$f" "$f2"; done 
+0

這很好用! –