From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 12 Jul 2018 13:44:34 +0800
Subject: [PATCH] bug修复和功能优化
---
screendisplay/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.m | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 163 insertions(+), 0 deletions(-)
diff --git a/screendisplay/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.m b/screendisplay/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.m
new file mode 100755
index 0000000..b1b9942
--- /dev/null
+++ b/screendisplay/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.m
@@ -0,0 +1,163 @@
+// ������������: 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
+// UIScrollView+MJRefresh.m
+// MJRefreshExample
+//
+// Created by MJ Lee on 15/3/4.
+// Copyright (c) 2015��� ���������. All rights reserved.
+//
+
+#import "UIScrollView+MJRefresh.h"
+#import "MJRefreshHeader.h"
+#import "MJRefreshFooter.h"
+#import <objc/runtime.h>
+
+@implementation NSObject (MJRefresh)
+
++ (void)exchangeInstanceMethod1:(SEL)method1 method2:(SEL)method2
+{
+ method_exchangeImplementations(class_getInstanceMethod(self, method1), class_getInstanceMethod(self, method2));
+}
+
++ (void)exchangeClassMethod1:(SEL)method1 method2:(SEL)method2
+{
+ method_exchangeImplementations(class_getClassMethod(self, method1), class_getClassMethod(self, method2));
+}
+
+@end
+
+@implementation UIScrollView (MJRefresh)
+
+#pragma mark - header
+static const char MJRefreshHeaderKey = '\0';
+- (void)setMj_header:(MJRefreshHeader *)mj_header
+{
+ if (mj_header != self.mj_header) {
+ // ���������������������������
+ [self.mj_header removeFromSuperview];
+ [self insertSubview:mj_header atIndex:0];
+
+ // ������������
+ [self willChangeValueForKey:@"mj_header"]; // KVO
+ objc_setAssociatedObject(self, &MJRefreshHeaderKey,
+ mj_header, OBJC_ASSOCIATION_ASSIGN);
+ [self didChangeValueForKey:@"mj_header"]; // KVO
+ }
+}
+
+- (MJRefreshHeader *)mj_header
+{
+ return objc_getAssociatedObject(self, &MJRefreshHeaderKey);
+}
+
+#pragma mark - footer
+static const char MJRefreshFooterKey = '\0';
+- (void)setMj_footer:(MJRefreshFooter *)mj_footer
+{
+ if (mj_footer != self.mj_footer) {
+ // ���������������������������
+ [self.mj_footer removeFromSuperview];
+ [self insertSubview:mj_footer atIndex:0];
+
+ // ������������
+ [self willChangeValueForKey:@"mj_footer"]; // KVO
+ objc_setAssociatedObject(self, &MJRefreshFooterKey,
+ mj_footer, OBJC_ASSOCIATION_ASSIGN);
+ [self didChangeValueForKey:@"mj_footer"]; // KVO
+ }
+}
+
+- (MJRefreshFooter *)mj_footer
+{
+ return objc_getAssociatedObject(self, &MJRefreshFooterKey);
+}
+
+#pragma mark - ������
+- (void)setFooter:(MJRefreshFooter *)footer
+{
+ self.mj_footer = footer;
+}
+
+- (MJRefreshFooter *)footer
+{
+ return self.mj_footer;
+}
+
+- (void)setHeader:(MJRefreshHeader *)header
+{
+ self.mj_header = header;
+}
+
+- (MJRefreshHeader *)header
+{
+ return self.mj_header;
+}
+
+#pragma mark - other
+- (NSInteger)mj_totalDataCount
+{
+ NSInteger totalCount = 0;
+ if ([self isKindOfClass:[UITableView class]]) {
+ UITableView *tableView = (UITableView *)self;
+
+ for (NSInteger section = 0; section<tableView.numberOfSections; section++) {
+ totalCount += [tableView numberOfRowsInSection:section];
+ }
+ } else if ([self isKindOfClass:[UICollectionView class]]) {
+ UICollectionView *collectionView = (UICollectionView *)self;
+
+ for (NSInteger section = 0; section<collectionView.numberOfSections; section++) {
+ totalCount += [collectionView numberOfItemsInSection:section];
+ }
+ }
+ return totalCount;
+}
+
+static const char MJRefreshReloadDataBlockKey = '\0';
+- (void)setMj_reloadDataBlock:(void (^)(NSInteger))mj_reloadDataBlock
+{
+ [self willChangeValueForKey:@"mj_reloadDataBlock"]; // KVO
+ objc_setAssociatedObject(self, &MJRefreshReloadDataBlockKey, mj_reloadDataBlock, OBJC_ASSOCIATION_COPY_NONATOMIC);
+ [self didChangeValueForKey:@"mj_reloadDataBlock"]; // KVO
+}
+
+- (void (^)(NSInteger))mj_reloadDataBlock
+{
+ return objc_getAssociatedObject(self, &MJRefreshReloadDataBlockKey);
+}
+
+- (void)executeReloadDataBlock
+{
+ !self.mj_reloadDataBlock ? : self.mj_reloadDataBlock(self.mj_totalDataCount);
+}
+@end
+
+@implementation UITableView (MJRefresh)
+
++ (void)load
+{
+ [self exchangeInstanceMethod1:@selector(reloadData) method2:@selector(mj_reloadData)];
+}
+
+- (void)mj_reloadData
+{
+ [self mj_reloadData];
+
+ [self executeReloadDataBlock];
+}
+@end
+
+@implementation UICollectionView (MJRefresh)
+
++ (void)load
+{
+ [self exchangeInstanceMethod1:@selector(reloadData) method2:@selector(mj_reloadData)];
+}
+
+- (void)mj_reloadData
+{
+ [self mj_reloadData];
+
+ [self executeReloadDataBlock];
+}
+@end
--
Gitblit v1.8.0