我想访问RCTMeasure函数的参数中的YGNodeRef node
。这是来自本机的RCTShadowText.m的瑜伽文件
static YGSize RCTMeasure(YGNodeRef node, float width, YGMeasureMode
widthMode, float height, YGMeasureMode heightMode)
{
RCTShadowText *shadowText = (__bridge RCTShadowText *)
YGNodeGetContext(node);
NSTextStorage *textStorage = [shadowText buildTextStorageForWidth:width
widthMode:widthMode];
[shadowText calculateTextFrame:textStorage];
NSLayoutManager *layoutManager = textStorage.layoutManagers.firstObject;
NSTextContainer *textContainer = layoutManager.textContainers.firstObject;
CGSize computedSize = [layoutManager
usedRectForTextContainer:textContainer].size;
YGSize result;
result.width = RCTCeilPixelValue(computedSize.width);
if (shadowText->_effectiveLetterSpacing < 0) {
result.width -= shadowText->_effectiveLetterSpacing;
}
result.height = RCTCeilPixelValue(computedSize.height);
return result;
}
YGNodeRef是在另一个名为Yoga.h的类中研究的。
typedef struct YGNode *YGNodeRef;
我可以在调试器中看到YGNodeRef node
的值,但是我不知道如何在代码中访问它的元素。内容如下:
(YGNodeRef) 0x150094a00
> style (YGStyle)
> layout (YGLayout)
lineIndex = (uint32_t) 0
> parent = (YGNodeRef) 0x15009e200
..... etc .....
> context
我想访问'context'子级以检查它是否为null,请多多帮助。或者,如果您只知道上下文为null的原因,那么这也对我有帮助:)
我是目标C的新手,所以我的逻辑可能有缺陷。