初始化后如何更改按钮的位置?

时间:2018-07-21 10:45:40

标签: ios swift asyncdisplaykit

我有ASViewController<ASDisplayNode>。在init()中,我将包含两个按钮的ASAbsoluteLayoutSpec设置为显示节点。在ASViewController生命周期中如何更改按钮位置?

1 个答案:

答案 0 :(得分:1)

当然可以。只需在flag方法中使用变量switchlayoutThatFits:语句来更改逻辑行为,并在更改flag状态调用后仅self.setNeedsLayout或{{1} }动画,以及此推荐的更改布局的方法。 有关更多信息,请阅读docs 示例:

transitionLayoutWithAnimation:shouldMeasureAsync:measurementCompletion:

对于更改布局,请使用override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec { let fieldNode: FieldNode if self.fieldState == .signupNodeName { // flag dependens state fieldNode = self.nameField } else { fieldNode = self.ageField } let stack = ASStackLayoutSpec() stack.children = [fieldNode, buttonNode] let insets = UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15) return ASInsetLayoutSpec(insets: insets, child: stack) } 方法调用。不要忘了在致电之前更改状态。