diff --git a/BIObjCHelpers/Datasource/TableView/BIDatasourceFeedTableView.m b/BIObjCHelpers/Datasource/TableView/BIDatasourceFeedTableView.m index b1b05ce..3dbaae6 100644 --- a/BIObjCHelpers/Datasource/TableView/BIDatasourceFeedTableView.m +++ b/BIObjCHelpers/Datasource/TableView/BIDatasourceFeedTableView.m @@ -109,7 +109,11 @@ - (void)fetchBatchRequest:(nonnull BIBatchRequest *)batchRequest { } - (void)updateTableViewForFetchBatchRequest:(nonnull BIBatchRequest *)batchRequest { - if (batchRequest.isInitialRequest || batchRequest.isInfiniteScrollingRequest) { + if (batchRequest.isInitialRequest) { + self.tableView.BI_pullToRefreshEnabled = NO; + self.fetchingState = BIDatasourceTableViewFetchingStateInfiniteScrolling; + [self.tableView BI_startInfiniteScrolling]; + } else if (batchRequest.isInfiniteScrollingRequest) { self.tableView.BI_pullToRefreshEnabled = NO; self.fetchingState = BIDatasourceTableViewFetchingStateInfiniteScrolling; self.tableView.infiniteScrollingState = BIInfiniteScrollingStateLoading; diff --git a/BIObjCHelpers/Views/TableView/BITableView.m b/BIObjCHelpers/Views/TableView/BITableView.m index e8c7dc3..175de59 100644 --- a/BIObjCHelpers/Views/TableView/BITableView.m +++ b/BIObjCHelpers/Views/TableView/BITableView.m @@ -128,11 +128,8 @@ - (void)setPullToRefreshEnabled:(BOOL)pullToRefreshEnabled { - (void)setInfiniteScrollingState:(BIInfiniteScrollingState)infiniteScrollingState { _infiniteScrollingState = infiniteScrollingState; - if (self.isInfiniteScrollingEnabled && - _infiniteScrollingState == BIInfiniteScrollingStateLoading && - !self.infiniteScrollingActivityIndicatorContainer.superview ) { - [self BI_createInfiniteScrollingActivityIndicatorContainer]; - self.tableFooterView = self.infiniteScrollingActivityIndicatorContainer; + if (self.isInfiniteScrollingEnabled && _infiniteScrollingState == BIInfiniteScrollingStateLoading) { + [self BI_startInfiniteScrolling]; } if (_infiniteScrollingState == BIInfiniteScrollingStateStopped) { self.tableFooterView = nil; @@ -185,6 +182,13 @@ - (void)BI_handlePullToRefreshAction:(UIRefreshControl *)sender { #pragma mark - Private Methods +- (void)BI_startInfiniteScrolling { + if (!self.infiniteScrollingActivityIndicatorContainer.superview) { + [self BI_createInfiniteScrollingActivityIndicatorContainer]; + self.tableFooterView = self.infiniteScrollingActivityIndicatorContainer; + } +} + - (BIScrollDirection)BI_scrollDirection { CGPoint scrollVelocity = [self.panGestureRecognizer velocityInView:self.superview]; BIScrollDirection direction = BIScrollDirectionNone; diff --git a/BIObjCHelpers/Views/TableView/_BITableView+Internal.h b/BIObjCHelpers/Views/TableView/_BITableView+Internal.h index ee1d0b0..af33227 100644 --- a/BIObjCHelpers/Views/TableView/_BITableView+Internal.h +++ b/BIObjCHelpers/Views/TableView/_BITableView+Internal.h @@ -16,4 +16,10 @@ @property (nonatomic, assign, getter=BI_isPullToRefreshEnabled) BOOL BI_pullToRefreshEnabled; @property (nonatomic, assign, getter=BI_isInfiniteScrollingEnabled) BOOL BI_infiniteScrollingEnabled; +/*! + Method for starting the loading spinner + This method will start loading the spinner even if infiniteScrollingEnabled is NO + */ +- (void)BI_startInfiniteScrolling; + @end