// // ASBatchFetching.h // AsyncDisplayKit // // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. // This source code is licensed under the BSD-style license found in the // LICENSE file in the root directory of this source tree. An additional grant // of patent rights can be found in the PATENTS file in the same directory. // #import #import ASDISPLAYNODE_EXTERN_C_BEGIN @class ASBatchContext; @protocol ASBatchFetchingScrollView - (BOOL)canBatchFetch; - (ASBatchContext *)batchContext; - (CGFloat)leadingScreensForBatching; @end /** @abstract Determine if batch fetching should begin based on the state of the parameters. @discussion This method is broken into a category for unit testing purposes and should be used with the ASTableView and * ASCollectionView batch fetching API. @param scrollView The scroll view that in-flight fetches are happening. @param scrollDirection The current scrolling direction of the scroll view. @param scrollableDirections The possible scrolling directions of the scroll view. @param contentOffset The offset that the scrollview will scroll to. @return Whether or not the current state should proceed with batch fetching. */ BOOL ASDisplayShouldFetchBatchForScrollView(UIScrollView *scrollView, ASScrollDirection scrollDirection, ASScrollDirection scrollableDirections, CGPoint contentOffset); /** @abstract Determine if batch fetching should begin based on the state of the parameters. @param context The batch fetching context that contains knowledge about in-flight fetches. @param scrollDirection The current scrolling direction of the scroll view. @param scrollableDirections The possible scrolling directions of the scroll view. @param bounds The bounds of the scrollview. @param contentSize The content size of the scrollview. @param targetOffset The offset that the scrollview will scroll to. @param leadingScreens How many screens in the remaining distance will trigger batch fetching. @param visible Whether the view is visible or not. @return Whether or not the current state should proceed with batch fetching. @discussion This method is broken into a category for unit testing purposes and should be used with the ASTableView and * ASCollectionView batch fetching API. */ extern BOOL ASDisplayShouldFetchBatchForContext(ASBatchContext *context, ASScrollDirection scrollDirection, ASScrollDirection scrollableDirections, CGRect bounds, CGSize contentSize, CGPoint targetOffset, CGFloat leadingScreens, BOOL visible); ASDISPLAYNODE_EXTERN_C_END