19

ベクター描画プログラムから ios 環境にパスをインポートしようとしています。それらを CGpaths または UIbezierpaths に入れたいと思います。Adobe Illustrator からパスをインポートすることに最も興味があります。最良の方法は、svg として保存してからインポートするようです。

パスを記述した、エクスポートされた SVG ファイルを解析するためのリソースをいくつか見つけました。ただし、私が見つけたものはすべて絶対パスのみを扱い、相対パスは扱いません。以下のパスには、大文字の C と小文字の C があります。大文字の C (絶対パス) を解析する方法は知っていますが、小文字の C (相対パス) を解析する方法がわかりません。

svg ファイルを ios/cocoa にインポートするためのパーサーの作成に関するヘルプを探しています。何週間もインターネットを検索して、この判断が必要だと思います。

これは、iPhone アプリにインポートしたいパスの例です。画像をインポートするつもりはありません。パス自体が必要です。だから、私はそれを操作することができます。どんな助けでも大歓迎です。

x="0px" y="0px" width="320px" height="436px" viewBox="-1.4 -0.5 320 436"

 d="M294.1,116C290.6,1.4,170.9,0.4,159.6,0.5
C148.3,0.4,28.7,1.4,25.2,116c-3.7,120.3-49.6,141.4-5.9,233.9c41.3,87.4,130.7,87,140.4,86.7c9.7,0.3,99.1,0.8,140.4-86.7
C343.7,257.4,297.8,236.3,294.1,116z

これがすべて絶対パスであれば、今すぐ解決できます。私を本当に混乱させているのは、相対 (つまり、小文字 (c) のパス) です。

4

7 に答える 7

13

よろしいですか、もしあなたがそれを支払う気があれば。このツールは、すべての問題を解決します。svg または psd をインポートすると、コードが生成されます。私はそれを使用しましたが、それは素晴らしいです!

http://www.paintcodeapp.com/

于 2013-06-17T15:54:52.593 に答える
3

ObjectiveC には、特に iOS (および OS X、ただし OS X ビルドは少し遅れています) 用のオープンソース SVG ライブラリがあります。

https://github.com/SVGKit/SVGKit/

(私は今年の初めからiOSプロジェクトでこれを使用していますが、うまく機能しています)

2018 更新: OSX サポートが開始され、SVGKit はほとんどの SVG を高速かつ正確にレンダリングします。欠点としては、高度なテキスト機能がすべてサポートされているわけではありません (たとえば、グラデーション フィルには対応していますが、複雑なテキスト レイアウトには対応していません)。

2012 年初頭の時点では、SVG 仕様の 100% 実装ではありませんが、多くの人が SVG 仕様の実装に取り​​組んでいます。

于 2012-05-09T13:52:51.627 に答える
2

JS から ObjC への変換を希望する場合は、このプロジェクトが役立つことがあります。

https://github.com/thelonious/svg-2d

特に、parseData メソッドを含む path.js ファイルは、相対パス コマンドと絶対パス コマンドを処理します。

https://github.com/thelonious/svg-2d/blob/master/shapes/path/Path.js

このコードは何年も前に書いたものですが、Java と C# に翻訳し、プロ向けの製品で使用したことがあります (残念ながらそのコードを共有することはできません)。

HTH ケビン

于 2011-07-18T21:11:23.697 に答える
0

NSView に SVG を追加するワンライナー:

addSubView(SVGParser.svg(FileParser.xml(~/Desktop/test.svg)))

迅速な SVGLib: https://github.com/eonist/swift-utils

于 2016-05-05T07:47:06.020 に答える