gpt4 book ai didi

ios - 如何获取 SVGElement 所属的组?

转载 作者:行者123 更新时间:2023-11-29 04:04:25 24 4
gpt4 key购买 nike

现在我这样做:

NodeList* elementsUsingTagG = [third_floor.DOMDocument getElementsByTagName:@"g"];
auds = [elementsUsingTagG.internalArray objectAtIndex:1];
SVGElement *elem = (SVGElement*)[third_floor.DOMDocument getElementById:hitLayer.name];
if ([auds.childNodes.internalArray containsObject:elem])
{
[self deselectTappedLayer];
lastTappedLayer = hitLayer;

if (lastTappedLayer != nil)
{
lastTappedLayer.opacity = 1.0f;
NSLog(@"Clicked on auditory %@, highlight it!", hitLayer.name);
}
}

我可以获得 SVGElement/CALayer/Node 的某些属性,该属性标识该 elem 所属的组吗?谢谢

最佳答案

我猜是这样的。我还没有测试过代码,但希望它可以帮助你。

迭代版本:

- (Element *)findFirstParentElementFromNode:(Node *)node
withTagName:(NSString *)tagName {
for (node = node.parentNode; node != nil; node = node.parentNode) {
if (![node isKindOfClass:[Element class]]) {
continue;
}

Element *element = (Element *)node;
if([element.tagName isEqualToString:tagName]) {
return element;
}
}

return nil;
}

递归版本:

- (Element *)findFirstParentElementFromNode:(Node *)node
withTagName:(NSString *)tagName {
if (node.parentNode == nil) {
return nil;
}

if ([node.parentNode isKindOfClass:[Element class]]) {
Element *element = (Element *)node.parentNode;
if([element.tagName isEqualToString:tagName]) {
return element;
}
}

return [self findFirstParentElementFrom:node.parentNode
withTagName:tagName];
}

并在您的情况下使用其中一个:

Element *groupElement = [self findFirstParentElementFromNode:elem
withTagName:@"g"];

关于ios - 如何获取 SVGElement 所属的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com