[英]Need advice handling large vector graphics in iOS
我有一個項目需要渲染大型SVG文件。 到目前為止,我一直在使用UIWebView,它可以工作,但渲染時間可能超過10秒。 在舊設備上,應用程序內存不足。
我想出了幾個可能的解決方案:
SVG是在服務器端生成的,因此我也對這方面的建議持開放態度(即改變格式)
我很欣賞那些在選擇前進方面有這方面經驗的人的一些指示。 您真誠的感謝!
好的! 經過多次試驗和錯誤后,我相信我在iOS中有大量SVG的黃油光滑滾動視圖。
基本上,您需要將svg切割成tile並使用UIWebViews在UIScrollView中呈現它們。
確保從主線程異步加載切片,這可能很棘手,因為你不能從后台線程向UIWebView做東西。 如果您嘗試在scrollviewdidscroll中加載切片,則會遇到波動的幀速率。
此外,您可能希望在UIWebViews中使用一個小的重置css來擺脫瓷磚周圍的丑陋填充。
* {
margin:0;
padding:0;
}
為我做了
PDF是Adobe Illustrator的原生格式,在iOS上得到很好的支持,因此它絕對是矢量圖形的一個選項。 渲染復雜的矢量圖形總是非常耗費CPU,因此您必須嘗試找出更快的內容。 鑒於iOS上的PDF堆棧比WebKit中的SVG支持要成熟得多,我猜它可能會更快,但它在很大程度上取決於您的輸入文件。 您可以查看Apple的ZoomingPDFViewer示例代碼 ,它使用帶有PDF的CATiledLayer
來開始。
我寫了一個系統,可以處理Inkscape無法處理的大型SVG文件。 它將SVG轉換為JavaScript和HTML。 公共版本在比我的開發環境慢的Web服務器上運行。 我想測試你所謂的大型SVG。 如果它工作,它將使用JavaScript和HTML創建SVG,並將修改SVG,以便用戶可以看到它正在構建。 您是否有可能發送中型和大型SVG,以便我可以嘗試在開發和測試中轉換它們?
借口拼寫 - ipod
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.