1

我想知道将 textNode 居中在水平 ASStackNode 内的垂直 ASSStackNode 内而不设置任何大小的正确方法是什么?

我在垂直布局、flyedGrow、flexShrink 周围尝试了 ASCenterLayout / ASRelativeLayout 的不同选项。我看到的唯一可能的方法是在垂直布局周围具有最小高度的静态布局。但是想看看有没有别的办法。

图片更好的图片:

我的布局结构:

布局

当文本字段之一为空时我得到什么:

在此处输入图像描述

我想看到的:

在此处输入图像描述

4

1 回答 1

1

如果您的 ASTextNode 为空或为零。不意味着节点不存在。如果要在节点为空时隐藏节点,则必须为其编写一个简单的逻辑。将其从计算中排除。我在 ADK1.9 上使用的:

- (ASLayoutSpec *)layoutSpecThatFits: (ASSizeRange)constrainedSize
{
  NSMutableArray *arrayOfChildren = [NSMutableArray new];
  [arrayOfChildren insertObject:self.titleNode];
  if (self.textNode.text.length > 0) {
    [arrayOfChildren insertObject:self.textNode];
  }
  ASStackLayoutSpec *verticalElementCoreStack = [ASStackLayoutSpec stackLayoutSpecWithDirection:ASStackLayoutDirectionVertical spacing:8
                                                                                 justifyContent:ASStackLayoutJustifyContentCenter alignItems:ASStackLayoutAlignItemsStretch
                                                                                       children:arrayOfChildren];
  return verticalElementCoreStack;
}
于 2016-11-24T06:19:49.120 回答