From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001
From: 单军华
Date: Wed, 11 Jul 2018 10:47:42 +0800
Subject: [PATCH] 首次上传

---
 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