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

标签 ios swift asyncdisplaykit

我有 ASViewController<ASDisplayNode> .在 init()我用 ASAbsoluteLayoutSpec 设置显示节点新节点其中包含两个按钮。我如何在 ASViewController 期间更改按钮位置生命周期?

最佳答案

当然可以。只需在 layoutThatFits: 方法中使用变量 flagswitch 语句来更改逻辑行为,并在更改 flag 之后state 仅调用 self.setNeedsLayouttransitionLayoutWithAnimation: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/

相关文章:

ios - 使用ASNetworkImageNode加载https图像?

android - 如何更改 Delphi 中 TCalendar 组件的单元格颜色?

iphone - 如何以编程方式对齐 iOS 应用程序中的按钮?

ios - 在 UITableView 上覆盖 UIView 并将其粘贴在滚动条的导航栏下方

swift - 计算两个日期之间的差异。 swift 1.2

swift - 如何在点击按钮时添加和显示新的子节点?

ios - 如何在 AsyncDisplayKit 中使用 scrollView 函数

iphone - NSOperationQueue、内存和GCD;如何正确实现?

ios - 核心数据类和获取请求问题

ios - 事件工具包不在日历顶部的多天全天事件