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/MJRefreshHeader.m | 149 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 149 insertions(+), 0 deletions(-)
diff --git a/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.m b/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.m
new file mode 100755
index 0000000..7b7249c
--- /dev/null
+++ b/screendisplay/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.m
@@ -0,0 +1,149 @@
+// ������������: https://github.com/CoderMJLee/MJRefresh
+// ������������: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
+// MJRefreshHeader.m
+// MJRefreshExample
+//
+// Created by MJ Lee on 15/3/4.
+// Copyright (c) 2015��� ���������. All rights reserved.
+//
+
+#import "MJRefreshHeader.h"
+
+@interface MJRefreshHeader()
+@property (assign, nonatomic) CGFloat insetTDelta;
+@end
+
+@implementation MJRefreshHeader
+#pragma mark - ������������
++ (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock
+{
+ MJRefreshHeader *cmp = [[self alloc] init];
+ cmp.refreshingBlock = refreshingBlock;
+ return cmp;
+}
++ (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action
+{
+ MJRefreshHeader *cmp = [[self alloc] init];
+ [cmp setRefreshingTarget:target refreshingAction:action];
+ return cmp;
+}
+
+#pragma mark - ���������������������
+- (void)prepare
+{
+ [super prepare];
+
+ // ������key
+ self.lastUpdatedTimeKey = MJRefreshHeaderLastUpdatedTimeKey;
+
+ // ������������
+ self.mj_h = MJRefreshHeaderHeight;
+}
+
+- (void)placeSubviews
+{
+ [super placeSubviews];
+
+ // ������y���(���������������������������������������������������������Y������������������placeSubviews���������������y���)
+ self.mj_y = - self.mj_h - self.ignoredScrollViewContentInsetTop;
+}
+
+- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change
+{
+ [super scrollViewContentOffsetDidChange:change];
+
+ // ������������refreshing������
+ if (self.state == MJRefreshStateRefreshing) {
+ // ������������
+ if (self.window == nil) return;
+
+ // sectionheader������������
+ CGFloat insetT = - self.scrollView.mj_offsetY > _scrollViewOriginalInset.top ? - self.scrollView.mj_offsetY : _scrollViewOriginalInset.top;
+ insetT = insetT > self.mj_h + _scrollViewOriginalInset.top ? self.mj_h + _scrollViewOriginalInset.top : insetT;
+ self.scrollView.mj_insetT = insetT;
+
+ self.insetTDelta = _scrollViewOriginalInset.top - insetT;
+ return;
+ }
+
+ // ���������������������������������contentInset������������
+ _scrollViewOriginalInset = self.scrollView.mj_inset;
+
+ // ���������contentOffset
+ CGFloat offsetY = self.scrollView.mj_offsetY;
+ // ���������������������������offsetY
+ CGFloat happenOffsetY = - self.scrollViewOriginalInset.top;
+
+ // ������������������������������������������������������������
+ // >= -> >
+ if (offsetY > happenOffsetY) return;
+
+ // ������ ��� ������������ ������������
+ CGFloat normal2pullingOffsetY = happenOffsetY - self.mj_h;
+ CGFloat pullingPercent = (happenOffsetY - offsetY) / self.mj_h;
+
+ if (self.scrollView.isDragging) { // ������������������
+ self.pullingPercent = pullingPercent;
+ if (self.state == MJRefreshStateIdle && offsetY < normal2pullingOffsetY) {
+ // ������������������������
+ self.state = MJRefreshStatePulling;
+ } else if (self.state == MJRefreshStatePulling && offsetY >= normal2pullingOffsetY) {
+ // ������������������
+ self.state = MJRefreshStateIdle;
+ }
+ } else if (self.state == MJRefreshStatePulling) {// ������������ && ���������
+ // ������������
+ [self beginRefreshing];
+ } else if (pullingPercent < 1) {
+ self.pullingPercent = pullingPercent;
+ }
+}
+
+- (void)setState:(MJRefreshState)state
+{
+ MJRefreshCheckState
+
+ // ���������������������
+ if (state == MJRefreshStateIdle) {
+ if (oldState != MJRefreshStateRefreshing) return;
+
+ // ������������������
+ [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:self.lastUpdatedTimeKey];
+ [[NSUserDefaults standardUserDefaults] synchronize];
+
+ // ������inset���offset
+ [UIView animateWithDuration:MJRefreshSlowAnimationDuration animations:^{
+ self.scrollView.mj_insetT += self.insetTDelta;
+
+ // ���������������������
+ if (self.isAutomaticallyChangeAlpha) self.alpha = 0.0;
+ } completion:^(BOOL finished) {
+ self.pullingPercent = 0.0;
+
+ if (self.endRefreshingCompletionBlock) {
+ self.endRefreshingCompletionBlock();
+ }
+ }];
+ } else if (state == MJRefreshStateRefreshing) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [UIView animateWithDuration:MJRefreshFastAnimationDuration animations:^{
+ CGFloat top = self.scrollViewOriginalInset.top + self.mj_h;
+ // ������������������top
+ self.scrollView.mj_insetT = top;
+ // ������������������
+ CGPoint offset = self.scrollView.contentOffset;
+ offset.y = -top;
+ [self.scrollView setContentOffset:offset animated:NO];
+ } completion:^(BOOL finished) {
+ [self executeRefreshingCallback];
+ }];
+ });
+ }
+}
+
+#pragma mark - ������������
+- (NSDate *)lastUpdatedTime
+{
+ return [[NSUserDefaults standardUserDefaults] objectForKey:self.lastUpdatedTimeKey];
+}
+@end
--
Gitblit v1.8.0