From 83b9d5c682b21d88133f24da0f94dd56bd79e687 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 19 Jul 2018 13:38:55 +0800
Subject: [PATCH] change
---
screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.m | 146 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 146 insertions(+), 0 deletions(-)
diff --git a/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.m b/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.m
new file mode 100755
index 0000000..71b9579
--- /dev/null
+++ b/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.m
@@ -0,0 +1,146 @@
+//
+// MJRefreshBackFooter.m
+// MJRefreshExample
+//
+// Created by MJ Lee on 15/4/24.
+// Copyright (c) 2015��� ���������. All rights reserved.
+//
+
+#import "MJRefreshBackFooter.h"
+
+@interface MJRefreshBackFooter()
+@property (assign, nonatomic) NSInteger lastRefreshCount;
+@property (assign, nonatomic) CGFloat lastBottomDelta;
+@end
+
+@implementation MJRefreshBackFooter
+
+#pragma mark - ���������
+- (void)willMoveToSuperview:(UIView *)newSuperview
+{
+ [super willMoveToSuperview:newSuperview];
+
+ [self scrollViewContentSizeDidChange:nil];
+}
+
+#pragma mark - ���������������������
+- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change
+{
+ [super scrollViewContentOffsetDidChange:change];
+
+ // ���������������������������������
+ if (self.state == MJRefreshStateRefreshing) return;
+
+ _scrollViewOriginalInset = self.scrollView.mj_inset;
+
+ // ���������contentOffset
+ CGFloat currentOffsetY = self.scrollView.mj_offsetY;
+ // ���������������������������offsetY
+ CGFloat happenOffsetY = [self happenOffsetY];
+ // ������������������������������������������������������������
+ if (currentOffsetY <= happenOffsetY) return;
+
+ CGFloat pullingPercent = (currentOffsetY - happenOffsetY) / self.mj_h;
+
+ // ���������������������������������pullingPercent���������������
+ if (self.state == MJRefreshStateNoMoreData) {
+ self.pullingPercent = pullingPercent;
+ return;
+ }
+
+ if (self.scrollView.isDragging) {
+ self.pullingPercent = pullingPercent;
+ // ������ ��� ������������ ������������
+ CGFloat normal2pullingOffsetY = happenOffsetY + self.mj_h;
+
+ if (self.state == MJRefreshStateIdle && currentOffsetY > normal2pullingOffsetY) {
+ // ������������������������
+ self.state = MJRefreshStatePulling;
+ } else if (self.state == MJRefreshStatePulling && currentOffsetY <= normal2pullingOffsetY) {
+ // ������������������
+ self.state = MJRefreshStateIdle;
+ }
+ } else if (self.state == MJRefreshStatePulling) {// ������������ && ���������
+ // ������������
+ [self beginRefreshing];
+ } else if (pullingPercent < 1) {
+ self.pullingPercent = pullingPercent;
+ }
+}
+
+- (void)scrollViewContentSizeDidChange:(NSDictionary *)change
+{
+ [super scrollViewContentSizeDidChange:change];
+
+ // ���������������
+ CGFloat contentHeight = self.scrollView.mj_contentH + self.ignoredScrollViewContentInsetBottom;
+ // ���������������
+ CGFloat scrollHeight = self.scrollView.mj_h - self.scrollViewOriginalInset.top - self.scrollViewOriginalInset.bottom + self.ignoredScrollViewContentInsetBottom;
+ // ���������������������
+ self.mj_y = MAX(contentHeight, scrollHeight);
+}
+
+- (void)setState:(MJRefreshState)state
+{
+ MJRefreshCheckState
+
+ // ���������������������������
+ if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) {
+ // ������������
+ if (MJRefreshStateRefreshing == oldState) {
+ [UIView animateWithDuration:MJRefreshSlowAnimationDuration animations:^{
+ self.scrollView.mj_insetB -= self.lastBottomDelta;
+
+ // ���������������������
+ if (self.isAutomaticallyChangeAlpha) self.alpha = 0.0;
+ } completion:^(BOOL finished) {
+ self.pullingPercent = 0.0;
+
+ if (self.endRefreshingCompletionBlock) {
+ self.endRefreshingCompletionBlock();
+ }
+ }];
+ }
+
+ CGFloat deltaH = [self heightForContentBreakView];
+ // ���������������
+ if (MJRefreshStateRefreshing == oldState && deltaH > 0 && self.scrollView.mj_totalDataCount != self.lastRefreshCount) {
+ self.scrollView.mj_offsetY = self.scrollView.mj_offsetY;
+ }
+ } else if (state == MJRefreshStateRefreshing) {
+ // ������������������������
+ self.lastRefreshCount = self.scrollView.mj_totalDataCount;
+
+ [UIView animateWithDuration:MJRefreshFastAnimationDuration animations:^{
+ CGFloat bottom = self.mj_h + self.scrollViewOriginalInset.bottom;
+ CGFloat deltaH = [self heightForContentBreakView];
+ if (deltaH < 0) { // ������������������������view���������
+ bottom -= deltaH;
+ }
+ self.lastBottomDelta = bottom - self.scrollView.mj_insetB;
+ self.scrollView.mj_insetB = bottom;
+ self.scrollView.mj_offsetY = [self happenOffsetY] + self.mj_h;
+ } completion:^(BOOL finished) {
+ [self executeRefreshingCallback];
+ }];
+ }
+}
+#pragma mark - ������������
+#pragma mark ������scrollView��������� ������ view ���������
+- (CGFloat)heightForContentBreakView
+{
+ CGFloat h = self.scrollView.frame.size.height - self.scrollViewOriginalInset.bottom - self.scrollViewOriginalInset.top;
+ return self.scrollView.contentSize.height - h;
+}
+
+#pragma mark ������������������������������������contentOffset.y
+- (CGFloat)happenOffsetY
+{
+ CGFloat deltaH = [self heightForContentBreakView];
+ if (deltaH > 0) {
+ return deltaH - self.scrollViewOriginalInset.top;
+ } else {
+ return - self.scrollViewOriginalInset.top;
+ }
+}
+@end
--
Gitblit v1.8.0