From 9abae013a7c2510ead0ea7bf7cffdba54d7f9e08 Mon Sep 17 00:00:00 2001 From: Garrett Moon Date: Thu, 13 Oct 2016 10:51:23 -0700 Subject: [PATCH] Scrollable direction is invalid until a relayout. (#2375) --- AsyncDisplayKit/ASCollectionView.mm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index 8c79a019fe..2d1bf97370 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -1368,7 +1368,13 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; // If, for example, a vertical flow layout has its height changed due to a status bar // appearance update, we do not need to relayout all nodes. // For a more permanent fix to the unsafety mentioned above, see https://github.com/facebook/AsyncDisplayKit/pull/2182 + + // If the bounds have changed, scrollable directions may be invalid until relayout has + // occurred. + [[self collectionViewLayout] invalidateLayout]; + [self layoutIfNeeded]; ASScrollDirection scrollDirection = self.scrollableDirections; + BOOL fixedVertically = (ASScrollDirectionContainsVerticalDirection(scrollDirection) == NO); BOOL fixedHorizontally = (ASScrollDirectionContainsHorizontalDirection(scrollDirection) == NO);