Skip to content

Commit

Permalink
解决自动调用上拉刷新一次
Browse files Browse the repository at this point in the history
  • Loading branch information
xhzengAIB committed Aug 31, 2015
1 parent 2830461 commit 8675d83
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 12 deletions.
10 changes: 10 additions & 0 deletions RefreshControl/Manager/XHRefreshControl.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@
- (void)beginLoadMoreRefreshing;

@optional
/**
* 比如有一些页面不需要下拉刷新,仅仅需要一次自动上拉加载更多,然后其他情况就归为手动滑动到底部是上拉加载更多,这个方法就会被调用,前提是需要调用一下startLoadMoreRefreshing
*/
- (void)startLoadMoreForAutoTrigger;

/**
* 是否支持下拉刷新
*
Expand Down Expand Up @@ -172,6 +177,11 @@
*/
- (void)endPullDownRefreshing;

/**
* 外部手动启动上拉加载更多的方法,这个方法不需要手动去拖动UIScrollView
*/
- (void)startLoadMoreRefreshing;

/**
* 停止上提加载更多的方法
*/
Expand Down
29 changes: 17 additions & 12 deletions RefreshControl/Manager/XHRefreshControl.m
Original file line number Diff line number Diff line change
Expand Up @@ -141,24 +141,29 @@ - (void)endPullDownRefreshing {
#pragma mark - Load More Refreshing Method

- (void)startLoadMoreRefreshing {
if (self.isLoadMoreRefreshed) {
if (self.loadMoreRefreshedCount < self.autoLoadMoreRefreshedCount && !self.handleNetworkError) {
[self callBeginLoadMoreRefreshing];
} else {
[self.loadMoreView configuraManualStateWithMessage:[self displayAutoLoadMoreRefreshedMessage]];
}
}
}

- (void)callBeginLoadMoreRefreshing {
if (self.loadMoreRefreshing)
return;
[self callLoadMoreStatus];
[self.delegate startLoadMoreForAutoTrigger];
}

- (void)callLoadMoreStatus {
self.loadMoreRefreshing = YES;
self.handleNetworkError = NO;
self.loadMoreRefreshedCount ++;
self.refreshState = XHRefreshStateLoading;
[self.loadMoreView startLoading];
[self.delegate beginLoadMoreRefreshing];
}

- (void)callBeginLoadMoreRefreshing {
if (self.loadMoreRefreshing)
return;
if (self.loadMoreRefreshedCount < self.autoLoadMoreRefreshedCount && !self.handleNetworkError) {
[self callLoadMoreStatus];
[self.delegate beginLoadMoreRefreshing];
} else {
[self.loadMoreView configuraManualStateWithMessage:[self displayAutoLoadMoreRefreshedMessage]];
}
}

- (void)endLoadMoreRefresing {
Expand Down Expand Up @@ -621,7 +626,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(N

//判断是否滚动到底部
if(((y - size.height) + self.preloadValue) > kXHLoadMoreViewHeight && self.refreshState != XHRefreshStateLoading && self.isLoadMoreRefreshed && !self.loadMoreRefreshing && !self.noMoreDataForLoaded) {
[self startLoadMoreRefreshing];
[self callBeginLoadMoreRefreshing];
}
}
}
Expand Down

0 comments on commit 8675d83

Please sign in to comment.