2016-09-24 157 views
1

我想知道什麼是正確的方式居中垂直ASSStackNode內水平ASStackNode內的textNode沒有設置任何大小?在水平垂直居中節點ASStackLayout

我已經嘗試了ASCenterLayout/ASRelativeLayout圍繞垂直佈局,flewGrow,flexShrink的不同選項。 我所看到的唯一可能的方式是在垂直佈局周圍具有最小高度的靜態佈局。但是想找出是否有另一種方式。

圖片到更好的畫面:

我的佈局結構:

Layout

我能得到什麼,當文本字段爲空:

enter image description here

我想什麼見:

enter image description here

回答

1

如果您的ASTextNode爲空或零。不是意味着節點不存在。如果你想隱藏節點,如果它是空的,你必須爲它寫一個簡單的邏輯。爲了從計算中排除Spec。我在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; 
}