Pass node along in didEndDisplayingNode method

This commit is contained in:
Adlai Holler
2016-01-12 15:42:37 -07:00
parent 516e1f177d
commit 5e72daa2e3
4 changed files with 31 additions and 3 deletions

View File

@@ -376,7 +376,7 @@ NS_ASSUME_NONNULL_BEGIN
@optional @optional
- (void)collectionView:(ASCollectionView *)collectionView willDisplayNodeForItemAtIndexPath:(NSIndexPath *)indexPath; - (void)collectionView:(ASCollectionView *)collectionView willDisplayNodeForItemAtIndexPath:(NSIndexPath *)indexPath;
- (void)collectionView:(ASCollectionView *)collectionView didEndDisplayingNodeForItemAtIndexPath:(NSIndexPath *)indexPath; - (void)collectionView:(ASCollectionView *)collectionView didEndDisplayingNode:(ASCellNode *)node forItemAtIndexPath:(NSIndexPath *)indexPath;
/** /**
* Receive a message that the collectionView is near the end of its data set and more data should be fetched if * Receive a message that the collectionView is near the end of its data set and more data should be fetched if
@@ -406,6 +406,11 @@ NS_ASSUME_NONNULL_BEGIN
*/ */
- (BOOL)shouldBatchFetchForCollectionView:(ASCollectionView *)collectionView; - (BOOL)shouldBatchFetchForCollectionView:(ASCollectionView *)collectionView;
/**
* Use `collectionView:didEndDisplayingNode:forItemAtIndexPath:` instead.
*/
- (void)collectionView:(ASCollectionView *)collectionView didEndDisplayingNodeForItemAtIndexPath:(NSIndexPath *)indexPath ASDISPLAYNODE_DEPRECATED;
@end @end
/** /**

View File

@@ -571,9 +571,17 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell";
{ {
[_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:self.scrollDirection]; [_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:self.scrollDirection];
if ([_asyncDelegate respondsToSelector:@selector(collectionView:didEndDisplayingNode:forItemAtIndexPath:)]) {
ASCellNode *node = ((_ASCollectionViewCell *)cell).node;
ASDisplayNodeAssertNotNil(node, @"Expected node associated with removed cell not to be nil.");
[_asyncDelegate collectionView:self didEndDisplayingNode:node forItemAtIndexPath:indexPath];
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if ([_asyncDelegate respondsToSelector:@selector(collectionView:didEndDisplayingNodeForItemAtIndexPath:)]) { if ([_asyncDelegate respondsToSelector:@selector(collectionView:didEndDisplayingNodeForItemAtIndexPath:)]) {
[_asyncDelegate collectionView:self didEndDisplayingNodeForItemAtIndexPath:indexPath]; [_asyncDelegate collectionView:self didEndDisplayingNodeForItemAtIndexPath:indexPath];
} }
#pragma clang diagnostic pop
} }
- (void)layoutSubviews - (void)layoutSubviews

View File

@@ -336,7 +336,8 @@ NS_ASSUME_NONNULL_BEGIN
@optional @optional
- (void)tableView:(ASTableView *)tableView willDisplayNodeForRowAtIndexPath:(NSIndexPath *)indexPath; - (void)tableView:(ASTableView *)tableView willDisplayNodeForRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(ASTableView *)tableView didEndDisplayingNodeForRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(ASTableView *)tableView didEndDisplayingNode:(ASCellNode *)node forRowAtIndexPath:(NSIndexPath *)indexPath;
/** /**
* Receive a message that the tableView is near the end of its data set and more data should be fetched if necessary. * Receive a message that the tableView is near the end of its data set and more data should be fetched if necessary.
@@ -365,6 +366,11 @@ NS_ASSUME_NONNULL_BEGIN
*/ */
- (BOOL)shouldBatchFetchForTableView:(ASTableView *)tableView; - (BOOL)shouldBatchFetchForTableView:(ASTableView *)tableView;
/**
* Use `tableView:didEndDisplayNode:forRowAtIndexPath` instead.
*/
- (void)tableView:(ASTableView *)tableView didEndDisplayingNodeForRowAtIndexPath:(NSIndexPath *)indexPath ASDISPLAYNODE_DEPRECATED;
@end @end
@protocol ASTableViewDelegate <ASTableDelegate> @protocol ASTableViewDelegate <ASTableDelegate>

View File

@@ -598,9 +598,18 @@ static NSString * const kCellReuseIdentifier = @"_ASTableViewCell";
[_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:self.scrollDirection]; [_rangeController visibleNodeIndexPathsDidChangeWithScrollDirection:self.scrollDirection];
if ([_asyncDelegate respondsToSelector:@selector(tableView:didEndDisplayingNode:forRowAtIndexPath:)]) {
ASCellNode *node = ((_ASTableViewCell *)cell).node;
ASDisplayNodeAssertNotNil(node, @"Expected node associated with removed cell not to be nil.");
[_asyncDelegate tableView:self didEndDisplayingNode:node forRowAtIndexPath:indexPath];
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if ([_asyncDelegate respondsToSelector:@selector(tableView:didEndDisplayingNodeForRowAtIndexPath:)]) { if ([_asyncDelegate respondsToSelector:@selector(tableView:didEndDisplayingNodeForRowAtIndexPath:)]) {
[_asyncDelegate tableView:self didEndDisplayingNodeForRowAtIndexPath:indexPath]; [_asyncDelegate tableView:self didEndDisplayingNodeForRowAtIndexPath:indexPath];
} }
#pragma clang diagnostic pop
} }