- It's not safe to hold the lock of a supernode and:
- Edit states of its subnodes
- Call subclass hooks
- Run completion block
- Run animation, which can trigger layout passes on subnodes, especially if one of them is a collection view.
We have to check in this case if the supernode of the subnode is indeed the _node that executes a layout transition. It can happen that a node already did a layout transition and added this subnode, in this case the subnode would would be removed from the new node instead of _node.
- Before this commit:
- Bridged properties are accessed to construct a recursive description without considering thread affinity.
- We have multiple methods that does the same thing: generates a debug description.
- After this commit:
- Bridged properties are accessed without triggering thread affinity assertions.
- We have only one method that provides debug description of a node. It is then used to construct a recursive description.
* Set the node to not opaque if it’s wrapping an UIActivityIndicatorView
* Add check for subclass of UIVisualEffectView to see if the node needs to be opaque
* New way to informing interaction delegate if ASCellNode get’s a setNeedsLayout call
* Remove nodeDidGetNeedsLayout as optional and better check if cell updates need to happen
* Differentiate between letting a normal display node and a cell node know that the size could have changed
* Check for _interactionDelegate is nil
* Add nullability to out pointer
* Adress comments and some renaming