Skip to content
This repository has been archived by the owner on Feb 2, 2023. It is now read-only.

[ASDisplayNode] Certain animations cause relayout before layout transitions can complete #1883

Closed
wants to merge 82 commits into from

Conversation

jellenbogen
Copy link

This is a clone of my last PR which was closed because I screwed up a push in my fork.

Original [https://github.com//pull/1394]

To whomever reviews this, please let me know if I'm missing something here. I've been using the framework for a bit now, but there is a ton to learn here, thanks in advance.

There are certain animations that can cause a layoutSubviews or in this case layoutSubnodes to occur up the animating nodes parent chain. The 2 cases I've observed are frame and bounds.

This is causing the the node that is transitioning to snap to the finalLayout before all animations are complete and before completeTransition(didComplete: Bool) is called.

The proposed fix is to gate relayout by whether or not there is a transition occurring. I've added a check for _transitionContext != nil (which is set to nil on the transitionDidComplete callback) in the layout method on ASDisplayNode.

george-gw and others added 2 commits June 21, 2016 16:13
…hive#1753)

[ASMapNode] Change map snapshot when updating it with a new region (facebookarchive#1754)
[ASMapNode] Commented out code that is causing inaccurate behavior
[ASMapNode] Added the ability to zoom in and show annotations, similar to showAnnotations:animated: of MKMapView.
Added a basic example for ASMapNode to try out the different changes
@ghost ghost added the CLA Signed label Jul 11, 2016
george-gw and others added 12 commits July 11, 2016 20:48
…ltiplex_image_path

[Examples] fix image paths in example_extra/Multiplex
…etChildren

[ASLayoutSpec] Final layoutable set children
…e#1899)

This assertion is failing in some apps and will be enabled soon.
…ly on property lock (facebookarchive#1900)

For performance reasons change to directly lock and unlock calls on the property lock instance
…rFromSubnodeNotHappening

[ASDisplayNode] Fix setNeedsLayout triggered from subnode will not trigger relayout
…pdateTitle

[ASButtonNode] Correctly compare and update its title
@ghost ghost added the CLA Signed label Jul 12, 2016
maicki and others added 27 commits July 14, 2016 14:52
…ASViewController

[ASViewController] Fix sizing of root node in ASViewController for modal presentation and root view controller
…ache

Share ASDK's PINRemoteImage cache with default instance of PINRemoteI…
…are changing

Throw away the all subcomponents to create them with the new constrained size new as well as let the truncater do it's job again for the new constrained size. This is necessary as after a truncation did happen the context would use the truncated string and not the original string to truncate based on the new constrained size
…rchive#1907)

* Always layout nodes on a background thread

* Remove semaphore in ASDataController for allocating nodes and layout

* Fix variable not used error

* Remove overhead to create subarray of contexts of nodes while layout nodes

* Remove extra allocation of allocatedNodes and indexPaths array
…ive#1725)

* Add automatic measurement before layout

* Remove code not needed or addressed in a different PR

* Adjust comments and rename __layoutSublayouts to __layoutSubnodes

* Check before setting up a placeholder layer if the node should have a placeholder
I have a subclass of `ASTextNode` that uses `pointSizeScaleFactors`. Currently I have to recompute the scale factors any time the font size changes. If `_rendererAttributes` used the property accesor for the scale factors I would only have to create them when asked. I hope this little change can make it in :)
…uncationAgain

[ASTextNode] Fix wrong truncation after constrained size changes
…vocations

[Performance] Various Easy Performance Wins
…tingIssues

[ASRangeController] Fix Major Range Mode Updating Issues
…Percentage

[ASLayout] Add convenience functions to create relative sizes with percentage
…ement

[Followup] Small code improvements
[ASTextNode] use accessor for `pointSizeScaleFactors`
aimalygin pushed a commit to aimalygin/AsyncDisplayKit that referenced this pull request Sep 16, 2020
aimalygin pushed a commit to aimalygin/AsyncDisplayKit that referenced this pull request Sep 16, 2020
* master_up: (43 commits)
  Do not expose tgmath.h to all clients of Texture (facebookarchive#1900)
  Call will / did display node for ASTextNode. Fixes facebookarchive#1680 (facebookarchive#1893)
  Remove background deallocation helper code (facebookarchive#1890)
  [Accessibility] Ship ASExperimentalDoNotCacheAccessibilityElements (facebookarchive#1888)
  🎉 3.0.0 (facebookarchive#1883)
  Upgrade to Xcode 11.5 (facebookarchive#1877)
  Renames AS_EXTERN and ASViewController (facebookarchive#1876)
  Improve ThreeMigrationGuide.md (facebookarchive#1878)
  Add a 3.0 migration guide (facebookarchive#1875)
  I forgot this in the last PR and I'm pushing to master, I'm a bad person.
  Update for 3.0.0-rc.2 (facebookarchive#1874)
  Update RELEASE.md (facebookarchive#1873)
  Fix all the warnings and re-enable on CI (facebookarchive#1872)
  Prepare for 3.0.0-rc.1 release (facebookarchive#1870)
  -[ASNetworkImageNode setURL:resetToDefault:] forget to reset animatedImage (facebookarchive#1861)
  [ASDisplayNode] Implement accessibilityElementsHidden (facebookarchive#1859)
  Fix documentation for ASCornerRoundingTypeClipping (facebookarchive#1863)
  Add iOS13 UIContextMenu api to ASCommonCollectionDelegate (facebookarchive#1860)
  [ASDisplayNode] Implement accessibilityViewIsModal (facebookarchive#1858)
  Update FBSnapshotTestCase to iOSSnapshotTestCase (=6.2) (facebookarchive#1855)
  ...
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants