我有一個顯示在UIWebView
內的SVG文件。此SVG包含多個指示可觸摸元素的<a>
標籤。加載SVG文件後,我想滾動視圖,使特定元素位於屏幕中心附近。如何將UIWebView中顯示的SVG文件的元素居中?
我有什麼到目前爲止是這樣的:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[diagramView stringByEvaluatingJavaScriptFromString:@""
"var e = document.getElementById('myelement');"
"var top = e.offsetTop;"
"while (e.offsetParent) {"
" e = e.offsetParent;"
" top += e.offsetTop;"
"}"
"alert(top);"
//"scrollTo(0, top);"
];
}
然而,top
結束是0每當這個運行。元素e
指向SVG文件的正確<a>
元素(使用alert(e.id)
進行檢查)。我似乎無法找到給我實際偏移的元素屬性的正確組合。
我可以硬編碼一組適當的偏移量,但我並不是很想。
UIWebView加載一個使用URI的SVG文檔,據我所知。因此,如果您添加要顯示的元素的ID的片段標識符,它是否將該元素的顯示居中?您將加載http://someDrawing.svg#aId,其中someDrawing.svg是您正在加載的內容,而aId是您希望顯示器按照http://www.w3.org/中心顯示的元素的ID TR/SVGTiny12/linking.html#LinksIntoSVG –
@RobertLongson:我忘了提及我曾嘗試過,但我無法使用末尾的URL片段加載文件資源。此外,即使這樣做加載,它會將元素滾動到視圖的頂部*,但我希望元素更多地位於中心(有一部分圖表我想在*和*下面看到*和* )。我也嘗試過'e.scrollIntoView()',但這似乎並沒有工作(沒有滾動發生,就像問題中的代碼)。 –
嗨@GregHewgill只是想檢查下面是否爲你工作 –