告別手動切圖,Xcode 6 矢量資源工作流大幅提效
iOS開發需適配@1x/@2x/@3x多規格圖片,隨設備增加工作量呈指數級增長。Xcode 6 引入 PDF 矢量圖形構建階段自動光柵化,從源頭解決多規格適配痛點。
一、Illustrator 生成 PDF 矢量源文件
- 新建文檔,按 @1x 規範設置畫板尺寸
- 複製目標圖形元素至新文檔
- 菜單「File」→「Save」選擇 PDF 格式
- **關鍵**:取消勾選「Preserve Illustrator Editing Capabilities」
導出的 PDF 為可無損縮放的矢量圖形,構建時自動生成各規格 PNG。
二、Xcode Asset Catalog 配置
- 專案中創建/打開 .xcassets 文件
- 菜單「Editor」→「New Image Set」
- 選中空 Image Set,打開 Utilities 面板 → Attributes Inspector
- Types 下拉選單選擇 **「Vectors」**
- Image Set 變為單一拖放點「All – Universal」
- 將 PDF 拖入該區域
後續代碼或 Interface Builder 直接用 `imageNamed:` 調用 Image Set 名稱即可。
三、構建時自動生成的規格
以 150×150pt @1x PDF 為例,Xcode 構建時自動生成:
- @1x: 150×150px
- @2x: 300×300px
- @3x: 450×450px
運行時 iOS 根據設備自動選擇合適規格。需配合 Auto Layout 約束防止大屏拉伸變形。
⚠ 關鍵限制與注意事項
- **階段性支援**:僅構建階段 PDF→PNG,運行時仍為光柵圖片,非真矢量
- **尺寸固化**:配置後無法指定新輸出尺寸,需更大規格必須重新製作 PDF
- **iOS 8+ 僅支援 PNG 輸出**;macOS 可真正支援矢量縮放
- **不兼容 iOS 7 及以下**(依賴 Asset Catalog)
- 若已有自動切圖腳本/工具,收益有限;但 **iOS/macOS 共用圖形資源時極具優勢**