2013-02-06 17 views
1

是與SVGKit玩,我或多或少地找到解決我的方式,使用這樣的代碼:SVGKit,如何讓所有的層

CALayer *layer; 
layer=[svgView.document layerWithIdentifier:@"path1730"]; 

但是,這是當我知道我想要的層的識別符看看。 有沒有辦法讓我獲得文檔中所有標識符(圖層)的列表?

+0

如果我幫助你,請勾選答案。謝謝。 – rsswtmr

回答

1

你會引用svgView.document.layerTree,這是子層的根源。您需要通過子層遞歸下降以捕獲所有子層。或者,如果您使用的是單一的SVGPathView,則可以使用其enumerateChildLayersUsingBlock:方法,並將該方法傳遞給將在視圖中的每個子圖層上運行的塊。

+0

非常感謝您的回答,我感覺這正是我需要的。 現在我的問題是如何使用這些信息。 谷歌搜索的「SVGPathView enumerateChildLayersUsingBlock」並不能帶來比訪問GitHub上的SVGKit更多。 我想找到一些示例代碼使用enumerateChildLayersUsingBlock,但似乎沒有可用。 enumerateChildLayersUsingBlock本身的代碼很簡單直接。 但我的第一個問題是:我從哪裏獲得SVGPathView? 分析SVGKit的代碼來弄清楚事情是如何工作的將是困難的方式。 – Michel

+0

自從我使用SVGKit以來已經有一段時間了。我想如果你還沒有使用'SVGPathView',你不需要擔心它。大多數人處理'SVGDocument',因爲他們正在閱讀和解析整個SVG文件。 – rsswtmr

+1

到目前爲止,我從文件中獲取路徑的方式是使用sed將它們從svg手動提取爲文本文件。這是相當的尷尬,但它開始工作。當然這不是它應該完成的方式,但我不知道正確的方法。我也沒有找到任何例子。 – Michel