Updated
Sep 30, 2021 1:58 PM
Created
Apr 22, 2021 12:45 AM
Tags
Texture (AsyncDisplayKit)
How Texture calculates Layout
protocol ASLayoutElement
class ASDisplayNode
conformsclass ASLayoutSpec
conforms
ASLayoutElement
has
- set of
layoutThatFits
- set of
calculateLayoutThatFits
layoutThatFits
is entry point to start laying out.calculateLayoutThatFits
would be called fromlayoutThatFits
for example
layoutThatFits
calculateLayoutThatFits
layoutThatFits
calculateLayoutThatFits
- recursively
So, calculateLayoutThatFits
gives us to chance to customize layout.
I wonder why this code would not work if I change to
layout
https://github.com/TextureCommunity/TextureBridging/blob/master/TextureBridging/NodeView.swift#L173How Texture applies the layout
ASDisplayNode._layoutSublayouts
applies the calculated layout to its view or layer.
Memo
- setNeedsLayout
- invalidateCalculatedLayout
- layoutVersion++
- _layoutSublayouts
- set frame to node.frame
- ASTextNode.attributedText
- setNeedsLayout
- __setNeedsLayout
- _u_setNeedsLayoutFromAbove
- _locked_constrainedSizeForLayoutPass
- returns a constrained size from layout pass