2015年8月22日土曜日

iPhone に SVG を表示するには

iOS で、SVG は簡単に表示できない。
この場合、表示用のライブラリの力を借りることになる。

調べた結果、UIImage-SVG と、SVGKit というものが見つかった。
いずれも、CocoaPod  に対応している。

UIImage-SVG
https://github.com/Label305/UIImage-SVG

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

CocoaPod なので、インストールは簡単だったのだが、UIImage-SVG は表示が全てベタ塗りとなり、文字の造形まで塗りつぶされてしまった。
対処方法がわからなかったので、今回は見送ることとした。

次に、SVGKit だが、このライブラリをインストールする際に関連ファイルとして CocoaLumberjack がインストールされる。
何も考えずに pod 'SVGKit' だけの指定をすると、両ファイルの最新版がインストールされるのだが、どうやらファイル通しの相性が良くないらしく、ビルドエラーを起こす。

こういった場合(CocoaPod)、何処を変更すればよいかの検討すら立たなくなる。
なにせ自動で色々やってくれるので、インストール後に直接設定を弄るのも抵抗がある。
なので、ビルドエラーのメッセージを見て調査することとした。

今回のエラーメッセージでキーとなっていたのは、DDLogCWarn だったので、これを元に検索すると以下のページがトップに出てきた。

DDLogCWarn is not a thing as far as I can tell #196
https://github.com/SVGKit/SVGKit/issues/196

奇しくも SVGKit のページだった。
内容を見ていくと、上にも書いた CocoaLumberjack を別途バージョン指定してインストールするような記述があった。
書かれてあるとおり、CocoaLumberjack はバージョンを指定して、SVGKit は指定なしにしてインストールした所、ビルドエラーも起こらず、ファイルもうまく表示できるようになった。

UIImage* newImage = [SVGKImage imageNamed:@"mySVGfile"].UIImage;
 一応めでたしめでたしといったところだろうか。

0 件のコメント:

コメントを投稿