[解決済み] Xcodeでベクター画像はどのように動作しますか(例:pdfファイル)?
2022-04-15 16:36:54
質問
Xcode 6では、ベクターサポートはどのように機能するのですか?
画像のサイズを変更すると、ギザギザになるのですが、どうしてですか?
解決方法は?
Xcode (7 and 6.3+) でベクターを使用する方法。
- 画像を .pdf ファイルを適切な@1倍サイズで作成します(例 ツールバーボタンの場合は24x24 ).
- あなたの 画像.xcassets ファイルを作成し、新しい 画像セット .
- で 属性インスペクタ を設定します。 スケールファクター に変更します。 単一ベクトル .
- pdfファイルをドラッグ&ドロップで すべて、ユニバーサル のセクションをご覧ください。
-
これで、他の画像と同じように、画像名で参照できるようになりました。 .png ファイルを作成します。
UIImage(named: "myImage")
Xcodeの古いバージョン(6.0 - 6.2)でベクターを使用する方法。
- 上記の手順で、手順3を除いては タイプ から ベクター .
Xcodeにおけるベクターの動作
ベクターのサポートは、Xcodeでは混乱します。なぜなら、ほとんどの人がベクターというと、拡大縮小しても見栄えのする画像を思い浮かべるからです。しかし、Xcode 6と7は、iOSのための完全なベクターサポートを持っていないので、物事は少し異なって動作します。
ベクターシステムは
本当にシンプル
. それはあなたの
.pdf
の画像を作成し
@1x.png
,
@2x.png
および
@3x.png
の資産を
ビルド時
. (可能
Assets.carの中身を調べるツールを使ってください。
で確認することができます)。
例えば、次のようなものが与えられたとします。
foo.pdf
は、44x44 のベクターアセットです。で
ビルドタイム
を実行すると、以下のファイルが生成されます。
-
[email protected]
44x44で -
[email protected]
88x88で -
[email protected]
132x132
これは、どのサイズの画像でも同じように機能します。例えば
bar.pdf
というように、100x100のものを取得します。
-
[email protected]
100x100で -
[email protected]
200x200で -
[email protected]
300x300で
インプリメンテーション
- 画像の新しいサイズを選択することはできません 44x44のサイズでなければ、見栄えがしません。その理由は 完全なベクターサポートは実装されていません。 . これらのベクターができることは、画像資産を保存する時間を節約することだけです。もし、既にこれをワンステップで行えるツール(例えば、Photoshopのスクリプト)を持っているなら、pdfベクターを使うことで得られるものは、次のことだけです。 将来的なサポート (例えば、iOS 9でAppleが@4xのアセットを要求し始めたとしても、これらはそのまま機能します)、そして、あなたは メンテナンスするファイルが少ない .
- すべてのアセットを@1xサイズで、PDFファイルとして保存してもらう必要があります . これにより、UIImageViewsが正しい固有コンテンツサイズを持つことができます。
なぜ(おそらく)このように動作するのか。
- これにより 後方互換性 は、以前のiOSバージョンと互換性があります。
- ベクターのリサイズは、実行時に計算負荷がかかる場合があります。 パフォーマンスヒットはありません。 .
関連
-
[解決済み] Xcodeエラー "Could not find Developer Disk Image" が発生する。
-
[解決済み] Xcode 9の問題を修正しました。"iPhoneはビジー状態です。iPhoneのデバッガーサポートを準備中"
-
[解決済み] Xcode 4で「既存のフレームワークを追加」する方法は?
-
[解決済み] Xcode DMGまたはXIPファイルをダウンロードする方法は?
-
[解決済み] Xcode 12、iOS Simulator用にビルドしても、iOS用にビルドされたオブジェクトファイルでは、アーキテクチャ「arm64」用にリンクされます。
-
[解決済み] 'ld: 警告: オプションに対応するディレクトリが見つかりません'
-
[解決済み] Xcodeコマンドラインツールのインストール方法
-
[解決済み] Invalid Bundle Error - "requires launch storyboard".
-
[解決済み】Xcodeプロジェクト(フォルダを含む)の名前を完全に変更するにはどうすればいいですか?)
-
[解決済み】XcodeでNSZombieを有効にする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
原因究明:画像が見つからない
-
[解決済み] Xcode 4 - "Archive "がグレーアウトしている?
-
[解決済み] iOS 9の新たな警告 "すべてのビットコードが削除されます"
-
[解決済み】Xcode 10、UIエレメントはどこにありますか?
-
[解決済み] Xcodeでファイルを実フォルダに移動する
-
[解決済み] SwiftでNSStringからNSDataを作成する
-
[解決済み] アプリケーションの実行権限を変更できなかった
-
[解決済み] 特定のブランチからPodをインストールするには?
-
[解決済み] なぜXcodeのブレークポイントが機能しないのか?
-
[解決済み] Xcodeプロジェクトナビゲータでクエスチョンマークは何を意味するのか?