[ASRangeController] Inspect delegate's ASInterfaceState to delay preloading beyond viewport until visible.

This commit is contained in:
Scott Goodson
2016-01-03 19:14:07 -08:00
parent 95bd2c264c
commit 984fe43997
10 changed files with 181 additions and 49 deletions

View File

@@ -9,6 +9,7 @@
#import "ASFlowLayoutController.h"
#import "ASTableViewInternal.h"
#import "ASDisplayNode+Subclasses.h"
#import "ASRangeController.h"
@interface _ASTablePendingState : NSObject
@property (weak, nonatomic) id <ASTableDelegate> delegate;
@@ -63,11 +64,12 @@
{
[super didLoad];
ASTableView *view = self.view;
view.tableNode = self;
if (_pendingState) {
_ASTablePendingState *pendingState = _pendingState;
self.pendingState = nil;
ASTableView *view = self.view;
self.pendingState = nil;
view.asyncDelegate = pendingState.delegate;
view.asyncDataSource = pendingState.dataSource;
}
@@ -125,6 +127,14 @@
return (ASTableView *)[super view];
}
#if RangeControllerLoggingEnabled
- (void)visibilityDidChange:(BOOL)isVisible
{
[super visibilityDidChange:isVisible];
NSLog(@"%@ - visible: %d", self, isVisible);
}
#endif
- (void)clearContents
{
[super clearContents];