diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index 2bdbb1d641..cc39783adb 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -532,7 +532,7 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(_ASCollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath { - [_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:[self scrollDirection]]; + [_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:self.scrollDirection]; if ([_asyncDelegate respondsToSelector:@selector(collectionView:willDisplayNodeForItemAtIndexPath:)]) { [_asyncDelegate collectionView:self willDisplayNodeForItemAtIndexPath:indexPath]; @@ -1081,6 +1081,9 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; if (!visible && node.inHierarchy) { [node __exitHierarchy]; } + + // Trigger updating interfaceState for cells in case ASCollectionView becomes visible or invisible + [_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:self.scrollDirection]; } #pragma mark - UICollectionView dead-end intercepts diff --git a/AsyncDisplayKit/ASTableView.mm b/AsyncDisplayKit/ASTableView.mm index 6241f28a61..947b40774e 100644 --- a/AsyncDisplayKit/ASTableView.mm +++ b/AsyncDisplayKit/ASTableView.mm @@ -1056,6 +1056,9 @@ static NSString * const kCellReuseIdentifier = @"_ASTableViewCell"; if (!visible && node.inHierarchy) { [node __exitHierarchy]; } + + // Trigger updating interfaceState for cells in case ASTableView becomes visible or invisible + [_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:self.scrollDirection]; } @end