diff --git a/RefreshControl/Manager/XHRefreshControl.h b/RefreshControl/Manager/XHRefreshControl.h index 0054e09..2249d83 100644 --- a/RefreshControl/Manager/XHRefreshControl.h +++ b/RefreshControl/Manager/XHRefreshControl.h @@ -172,6 +172,8 @@ */ - (void)startPullDownRefreshing; +- (void)startControlPixelPullDownRefreshing; + /** * 停止下拉刷新的方法 */ diff --git a/RefreshControl/Manager/XHRefreshControl.m b/RefreshControl/Manager/XHRefreshControl.m index 08d1786..5e6abbd 100644 --- a/RefreshControl/Manager/XHRefreshControl.m +++ b/RefreshControl/Manager/XHRefreshControl.m @@ -61,12 +61,19 @@ @interface XHRefreshControl () // Handle Network Error @property (nonatomic, assign) BOOL handleNetworkError; +@property (nonatomic, assign) BOOL shouldNeedControlAutoPullDownPixel; + @end @implementation XHRefreshControl #pragma mark - Pull Down Refreshing Method +- (void)startControlPixelPullDownRefreshing { + self.shouldNeedControlAutoPullDownPixel = YES; + [self startPullDownRefreshing]; +} + - (void)startPullDownRefreshing { if (self.isPullDownRefreshed) { self.pullDownRefreshing = YES; @@ -122,6 +129,7 @@ - (void)callBeginPullDownRefreshing { } - (void)endPullDownRefreshing { + self.shouldNeedControlAutoPullDownPixel = NO; if (self.isPullDownRefreshed) { [self setupRefreshTime]; @@ -189,7 +197,6 @@ - (void)endMoreOverWithMessage:(NSString *)message { } - (void)endMoreOverWithMessageTipsView:(UIView *)messageTipsView { - [self endLoadMoreRefresing]; self.noMoreDataForLoaded = YES; self.handleNetworkError = NO; self.loadMoreView.hidden = NO; @@ -392,6 +399,9 @@ - (CGFloat)refreshTotalPixels { } - (CGFloat)getAdaptorHeight { + if (self.shouldNeedControlAutoPullDownPixel) { + return 0; + } return self.originalTopInset; } @@ -709,9 +719,9 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(N // CGFloat scrollViewHeight = CGRectGetHeight(self.scrollView.frame); // CGFloat thubs = scrollViewHeight - [self getAdaptorHeight]; // if (contentSize.height >= thubs) { - CGRect loadMoreViewFrame = self.loadMoreView.frame; - loadMoreViewFrame.origin.y = contentSize.height; - self.loadMoreView.frame = loadMoreViewFrame; + CGRect loadMoreViewFrame = self.loadMoreView.frame; + loadMoreViewFrame.origin.y = contentSize.height; + self.loadMoreView.frame = loadMoreViewFrame; // } } } diff --git a/RefreshControl/Views/XHLoadMoreView.m b/RefreshControl/Views/XHLoadMoreView.m index fe85234..acda107 100644 --- a/RefreshControl/Views/XHLoadMoreView.m +++ b/RefreshControl/Views/XHLoadMoreView.m @@ -30,6 +30,11 @@ - (void)setupNormalButton { [self hideMessageView]; } +- (void)setupNoneDataStauts { + self.loadMoreButton.hidden = YES; + [self.activityIndicatorView stopAnimating]; +} + - (void)hideMessageView { if (_messageView) { _messageView.hidden = YES; @@ -65,6 +70,7 @@ - (void)configuraNothingMoreWithMessageView:(UIView *)messageView { _messageView.hidden = NO; return; } + [self setupNoneDataStauts]; messageView.backgroundColor = self.loadMoreButton.backgroundColor; self.messageView = messageView; [self addSubview:self.messageView];