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