我需要一個GMSMarker(谷歌地圖)的圖標更改爲SVG圖像(這我從網上申請),任何想法一個UIImage如何做到這一點?我見過一些可以做到這一點但不確定如何使用它們的圖書館!我基本上需要將SVG圖像轉換爲UIImage!如何顯示SVG圖像與斯威夫特
4
A
回答
2
我沒有足夠的信譽發表評論,所以我不得不把這個答案,很抱歉,如果這聽起來更像是一個註釋:
不管怎樣,你說你需要一個SVG圖像轉換成UIImage的。我從來沒有這樣做過,但是我之前已經從NSData創建了一個UIImage。也許有一種方法可以將SVG轉換爲NSData,然後轉換爲UIImage(您可能需要將它從SVG轉換爲jpeg,然後轉換爲NSData,我不確定,我需要挖掘項目。 )
或者,也許你可以使用UIImage的初始化文件,稱爲init(contentsOfFile路徑:字符串)。此初始化程序接受一個參數,該參數是一個表示圖像路徑的字符串。
同樣,我還沒有嘗試任何的這個呢。試圖成爲一些幫助。
0
兩個潛在的方法。
首先,最簡單的,是要導出的SVG爲PNG格式。例如,大多數應用都會允許進行修改 - 在Mac上,您可以使用Sketch。但是它消除了SVG獨立於分辨率的優點,因此它不是理想的選擇。您可以導出各種分辨率的PNG,並將1x/2x/3x與您的應用程序一起發送。
另一種選擇是創建從UIView
派生的自定義類,並覆蓋drawRect
。在那裏,使用函數來繪製SVG,你可以通過打開SVG來看看它(它是可讀的,就像你知道的那樣,就像一個文本文件)。該drawRect
會是這個樣子:
let bezierPath = UIBezierPath()
bezierPath.moveToPoint(CGPoint(x: 11.5, y: 17.5))
bezierPath.addLineToPoint(CGPoint(x: 28.5, y: 17.5))
// etc - you get the idea..
bezierPath.closePath()
現在,當您插入自定義的UIView,它會自動繪製自身。這是PaintCodeApp使用的方法(請參閱www.paintcodeapp.com)。您可以使用應用程序的試用版來生成代碼,或購買應用程序。
相關問題
- 1. 斯威夫特 - 圖像不顯示
- 2. 斯威夫特顯示圖像的UIImageView
- 3. 斯威夫特 - JSQMessagesViewController與斯威夫特
- 4. 如何與斯威夫特
- 5. 斯威夫特 - 顯示與按鍵
- 6. 截圖顯示空白 - 斯威夫特
- 7. 與斯威夫特
- 8. 與斯威夫特
- 9. 斯威夫特轉換斯威夫特
- 10. 斯威夫特2斯威夫特3
- 11. 斯威夫特MapKit不顯示指示
- 12. 斯威夫特 - 圖像色彩復位時顯示警告
- 13. 訪問字符串鍵顯示獲取圖像(斯威夫特)
- 14. 斯威夫特。從網站顯示圖像(xxx.?action=stream)
- 15. 斯威夫特遊樂場圖像不顯示它應該
- 16. 斯威夫特3頁:如何顯示使用URL與API
- 17. PFLoginViewController並沒有顯示斯威夫特
- 18. 顯示只有斯威夫特
- 19. 斯威夫特collectionViewCells沒有顯示
- 20. 斯威夫特
- 21. 斯威夫特
- 22. 斯威夫特
- 23. 斯威夫特
- 24. 斯威夫特
- 25. 斯威夫特
- 26. 斯威夫特
- 27. 斯威夫特
- 28. 斯威夫特
- 29. 斯威夫特
- 30. 斯威夫特
不能完全肯定你正在嘗試做的,但它會使用WKWebView和公正加載SVG在一個選擇嗎?如果沒有,也許有一種方法可以使用webview將svg解碼爲圖像,並使用它... –