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/MJRefreshAutoFooter.m |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 154 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.m b/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.m
new file mode 100755
index 0000000..207df04
--- /dev/null
+++ b/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.m
@@ -0,0 +1,154 @@
+//
+//  MJRefreshAutoFooter.m
+//  MJRefreshExample
+//
+//  Created by MJ Lee on 15/4/24.
+//  Copyright (c) 2015��� ���������. All rights reserved.
+//
+
+#import "MJRefreshAutoFooter.h"
+
+@interface MJRefreshAutoFooter()
+/** ������������������ */
+@property (assign, nonatomic, getter=isOneNewPan) BOOL oneNewPan;
+@end
+
+@implementation MJRefreshAutoFooter
+
+#pragma mark - ���������
+- (void)willMoveToSuperview:(UIView *)newSuperview
+{
+    [super willMoveToSuperview:newSuperview];
+    
+    if (newSuperview) { // ���������������
+        if (self.hidden == NO) {
+            self.scrollView.mj_insetB += self.mj_h;
+        }
+        
+        // ������������
+        self.mj_y = _scrollView.mj_contentH;
+    } else { // ������������
+        if (self.hidden == NO) {
+            self.scrollView.mj_insetB -= self.mj_h;
+        }
+    }
+}
+
+#pragma mark - ������������
+- (void)setAppearencePercentTriggerAutoRefresh:(CGFloat)appearencePercentTriggerAutoRefresh
+{
+    self.triggerAutomaticallyRefreshPercent = appearencePercentTriggerAutoRefresh;
+}
+
+- (CGFloat)appearencePercentTriggerAutoRefresh
+{
+    return self.triggerAutomaticallyRefreshPercent;
+}
+
+#pragma mark - ���������������������
+- (void)prepare
+{
+    [super prepare];
+    
+    // ������������������100%���������������������������
+    self.triggerAutomaticallyRefreshPercent = 1.0;
+    
+    // ���������������������
+    self.automaticallyRefresh = YES;
+    
+    // ������������offset������������������������������������������
+    self.onlyRefreshPerDrag = NO;
+}
+
+- (void)scrollViewContentSizeDidChange:(NSDictionary *)change
+{
+    [super scrollViewContentSizeDidChange:change];
+    
+    // ������������
+    self.mj_y = self.scrollView.mj_contentH;
+}
+
+- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change
+{
+    [super scrollViewContentOffsetDidChange:change];
+    
+    if (self.state != MJRefreshStateIdle || !self.automaticallyRefresh || self.mj_y == 0) return;
+    
+    if (_scrollView.mj_insetT + _scrollView.mj_contentH > _scrollView.mj_h) { // ������������������������
+        // ���������_scrollView.mj_contentH���������self.mj_y������������
+        if (_scrollView.mj_offsetY >= _scrollView.mj_contentH - _scrollView.mj_h + self.mj_h * self.triggerAutomaticallyRefreshPercent + _scrollView.mj_insetB - self.mj_h) {
+            // ������������������������������
+            CGPoint old = [change[@"old"] CGPointValue];
+            CGPoint new = [change[@"new"] CGPointValue];
+            if (new.y <= old.y) return;
+            
+            // ������������������������������������������������
+            [self beginRefreshing];
+        }
+    }
+}
+
+- (void)scrollViewPanStateDidChange:(NSDictionary *)change
+{
+    [super scrollViewPanStateDidChange:change];
+    
+    if (self.state != MJRefreshStateIdle) return;
+    
+    UIGestureRecognizerState panState = _scrollView.panGestureRecognizer.state;
+    if (panState == UIGestureRecognizerStateEnded) {// ���������
+        if (_scrollView.mj_insetT + _scrollView.mj_contentH <= _scrollView.mj_h) {  // ������������������
+            if (_scrollView.mj_offsetY >= - _scrollView.mj_insetT) { // ���������
+                [self beginRefreshing];
+            }
+        } else { // ������������������
+            if (_scrollView.mj_offsetY >= _scrollView.mj_contentH + _scrollView.mj_insetB - _scrollView.mj_h) {
+                [self beginRefreshing];
+            }
+        }
+    } else if (panState == UIGestureRecognizerStateBegan) {
+        self.oneNewPan = YES;
+    }
+}
+
+- (void)beginRefreshing
+{
+    if (!self.isOneNewPan && self.isOnlyRefreshPerDrag) return;
+    
+    [super beginRefreshing];
+    
+    self.oneNewPan = NO;
+}
+
+- (void)setState:(MJRefreshState)state
+{
+    MJRefreshCheckState
+    
+    if (state == MJRefreshStateRefreshing) {
+        [self executeRefreshingCallback];
+    } else if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) {
+        if (MJRefreshStateRefreshing == oldState) {
+            if (self.endRefreshingCompletionBlock) {
+                self.endRefreshingCompletionBlock();
+            }
+        }
+    }
+}
+
+- (void)setHidden:(BOOL)hidden
+{
+    BOOL lastHidden = self.isHidden;
+    
+    [super setHidden:hidden];
+    
+    if (!lastHidden && hidden) {
+        self.state = MJRefreshStateIdle;
+        
+        self.scrollView.mj_insetB -= self.mj_h;
+    } else if (lastHidden && !hidden) {
+        self.scrollView.mj_insetB += self.mj_h;
+        
+        // ������������
+        self.mj_y = _scrollView.mj_contentH;
+    }
+}
+@end

--
Gitblit v1.8.0