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/Custom/Header/MJRefreshGifHeader.m |  133 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 133 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.m b/screendisplay/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.m
new file mode 100755
index 0000000..f8bcc9b
--- /dev/null
+++ b/screendisplay/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.m
@@ -0,0 +1,133 @@
+//
+//  MJRefreshGifHeader.m
+//  MJRefreshExample
+//
+//  Created by MJ Lee on 15/4/24.
+//  Copyright (c) 2015��� ���������. All rights reserved.
+//
+
+#import "MJRefreshGifHeader.h"
+
+@interface MJRefreshGifHeader()
+{
+    __unsafe_unretained UIImageView *_gifView;
+}
+/** ��������������������������������� */
+@property (strong, nonatomic) NSMutableDictionary *stateImages;
+/** ��������������������������������� */
+@property (strong, nonatomic) NSMutableDictionary *stateDurations;
+@end
+
+@implementation MJRefreshGifHeader
+#pragma mark - ���������
+- (UIImageView *)gifView
+{
+    if (!_gifView) { 
+        UIImageView *gifView = [[UIImageView alloc] init]; 
+        [self addSubview:_gifView = gifView]; 
+    } 
+    return _gifView; 
+}
+
+- (NSMutableDictionary *)stateImages 
+{ 
+    if (!_stateImages) { 
+        self.stateImages = [NSMutableDictionary dictionary]; 
+    } 
+    return _stateImages; 
+}
+
+- (NSMutableDictionary *)stateDurations 
+{ 
+    if (!_stateDurations) { 
+        self.stateDurations = [NSMutableDictionary dictionary]; 
+    } 
+    return _stateDurations; 
+}
+
+#pragma mark - ������������
+- (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state 
+{ 
+    if (images == nil) return; 
+    
+    self.stateImages[@(state)] = images; 
+    self.stateDurations[@(state)] = @(duration); 
+    
+    /* ��������������������������������� */ 
+    UIImage *image = [images firstObject]; 
+    if (image.size.height > self.mj_h) { 
+        self.mj_h = image.size.height; 
+    } 
+}
+
+- (void)setImages:(NSArray *)images forState:(MJRefreshState)state 
+{ 
+    [self setImages:images duration:images.count * 0.1 forState:state]; 
+}
+
+#pragma mark - ���������������������
+- (void)prepare
+{
+    [super prepare];
+    
+    // ���������������
+    self.labelLeftInset = 20;
+}
+
+- (void)setPullingPercent:(CGFloat)pullingPercent
+{
+    [super setPullingPercent:pullingPercent];
+    NSArray *images = self.stateImages[@(MJRefreshStateIdle)];
+    if (self.state != MJRefreshStateIdle || images.count == 0) return;
+    // ������������
+    [self.gifView stopAnimating];
+    // ���������������������������������
+    NSUInteger index =  images.count * pullingPercent;
+    if (index >= images.count) index = images.count - 1;
+    self.gifView.image = images[index];
+}
+
+- (void)placeSubviews
+{
+    [super placeSubviews];
+    
+    if (self.gifView.constraints.count) return;
+    
+    self.gifView.frame = self.bounds;
+    if (self.stateLabel.hidden && self.lastUpdatedTimeLabel.hidden) {
+        self.gifView.contentMode = UIViewContentModeCenter;
+    } else {
+        self.gifView.contentMode = UIViewContentModeRight;
+        
+        CGFloat stateWidth = self.stateLabel.mj_textWith;
+        CGFloat timeWidth = 0.0;
+        if (!self.lastUpdatedTimeLabel.hidden) {
+            timeWidth = self.lastUpdatedTimeLabel.mj_textWith;
+        }
+        CGFloat textWidth = MAX(stateWidth, timeWidth);
+        self.gifView.mj_w = self.mj_w * 0.5 - textWidth * 0.5 - self.labelLeftInset;
+    }
+}
+
+- (void)setState:(MJRefreshState)state
+{
+    MJRefreshCheckState
+    
+    // ���������������������
+    if (state == MJRefreshStatePulling || state == MJRefreshStateRefreshing) {
+        NSArray *images = self.stateImages[@(state)];
+        if (images.count == 0) return;
+        
+        [self.gifView stopAnimating];
+        if (images.count == 1) { // ������������
+            self.gifView.image = [images lastObject];
+        } else { // ������������
+            self.gifView.animationImages = images;
+            self.gifView.animationDuration = [self.stateDurations[@(state)] doubleValue];
+            [self.gifView startAnimating];
+        }
+    } else if (state == MJRefreshStateIdle) {
+        [self.gifView stopAnimating];
+    }
+}
+@end

--
Gitblit v1.8.0