我有 ASViewController<ASDisplayNode>
.在 init()
我用 ASAbsoluteLayoutSpec
设置显示节点新节点其中包含两个按钮。我如何在 ASViewController
期间更改按钮位置生命周期?
最佳答案
当然可以。只需在 layoutThatFits:
方法中使用变量 flag
或 switch
语句来更改逻辑行为,并在更改 flag
之后state 仅调用 self.setNeedsLayout
或 transitionLayoutWithAnimation:shouldMeasureAsync:measurementCompletion:
用于动画,此推荐方法用于更改布局。
有关更多信息,请阅读 docs
示例:
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)
}
要更改布局,请使用 transitionLayoutWithAnimation:shouldMeasureAsync:measurementCompletion:
方法调用。不要忘记在此调用之前更改状态。
关于ios - 初始化后如何更改按钮的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51455281/