diff --git a/Podfile b/Podfile index d8a9b67..914de66 100644 --- a/Podfile +++ b/Podfile @@ -7,7 +7,6 @@ target 'suixinkan' do pod 'AMap3DMap-NO-IDFA', '~> 11.1' pod 'AMapSearch-NO-IDFA', '~> 9.7' pod 'AMapLocation-NO-IDFA', '~> 2.11' - pod 'MJRefresh', '~> 3.7' target 'suixinkanTests' do inherit! :search_paths diff --git a/Podfile.lock b/Podfile.lock index 1b87510..db846d1 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -6,13 +6,11 @@ PODS: - AMapFoundation-NO-IDFA (>= 1.8.7) - AMapSearch-NO-IDFA (9.7.5): - AMapFoundation-NO-IDFA (>= 1.8.0) - - MJRefresh (3.7.9) DEPENDENCIES: - AMap3DMap-NO-IDFA (~> 11.1) - AMapLocation-NO-IDFA (~> 2.11) - AMapSearch-NO-IDFA (~> 9.7) - - MJRefresh (~> 3.7) SPEC REPOS: trunk: @@ -20,15 +18,13 @@ SPEC REPOS: - AMapFoundation-NO-IDFA - AMapLocation-NO-IDFA - AMapSearch-NO-IDFA - - MJRefresh SPEC CHECKSUMS: AMap3DMap-NO-IDFA: 393a24abb0451fed2daa4316c8d3d356a395f2be AMapFoundation-NO-IDFA: f48acbf6e74913dc6744581053f7d984f2432850 AMapLocation-NO-IDFA: 0fa6e7d5e42e10253f4437424d98966f53760862 AMapSearch-NO-IDFA: 8e9d104032990a3b0cab66afb535299887c61047 - MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 -PODFILE CHECKSUM: dd39a238c7d1f1de8b61bcb07e20911bedae96b7 +PODFILE CHECKSUM: baa972253fcebc312545f7592c48cbba632f1907 COCOAPODS: 1.16.2 diff --git a/Pods/MJRefresh/LICENSE b/Pods/MJRefresh/LICENSE deleted file mode 100644 index 11bf234..0000000 --- a/Pods/MJRefresh/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h b/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h deleted file mode 100644 index e4eb872..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// MJRefreshAutoFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshAutoFooter : MJRefreshFooter -/** 是否自动刷新(默认为YES) */ -@property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; - -/** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ -@property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); - -/** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ -@property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; - -/** 自动触发次数, 默认为 1, 仅在拖拽 ScrollView 时才生效, - - 如果为 -1, 则为无限触发 - */ -@property (nonatomic) NSInteger autoTriggerTimes; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.m b/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.m deleted file mode 100644 index 66616e1..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.m +++ /dev/null @@ -1,216 +0,0 @@ -// -// MJRefreshAutoFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshAutoFooter.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" - -@interface MJRefreshAutoFooter() -/** 一个新的拖拽 */ -@property (nonatomic) BOOL triggerByDrag; -@property (nonatomic) NSInteger leftTriggerTimes; -@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 + self.ignoredScrollViewContentInsetBottom; - } 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; - - self.autoTriggerTimes = 1; -} - -- (void)scrollViewContentSizeDidChange:(NSDictionary *)change -{ - [super scrollViewContentSizeDidChange:change]; - - CGSize size = [change[NSKeyValueChangeNewKey] CGSizeValue]; - CGFloat contentHeight = size.height == 0 ? self.scrollView.mj_contentH : size.height; - // 设置位置 - CGFloat y = contentHeight + self.ignoredScrollViewContentInsetBottom; - if (self.mj_y != y) { - self.mj_y = y; - } -} - -- (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; - - if (_scrollView.isDragging) { - self.triggerByDrag = YES; - } - // 当底部刷新控件完全出现时,才刷新 - [self beginRefreshing]; - } - } -} - -- (void)scrollViewPanStateDidChange:(NSDictionary *)change -{ - [super scrollViewPanStateDidChange:change]; - - if (self.state != MJRefreshStateIdle) return; - - UIGestureRecognizerState panState = _scrollView.panGestureRecognizer.state; - - switch (panState) { - // 手松开 - case UIGestureRecognizerStateEnded: { - if (_scrollView.mj_insetT + _scrollView.mj_contentH <= _scrollView.mj_h) { // 不够一个屏幕 - if (_scrollView.mj_offsetY >= - _scrollView.mj_insetT) { // 向上拽 - self.triggerByDrag = YES; - [self beginRefreshing]; - } - } else { // 超出一个屏幕 - if (_scrollView.mj_offsetY >= _scrollView.mj_contentH + _scrollView.mj_insetB - _scrollView.mj_h) { - self.triggerByDrag = YES; - [self beginRefreshing]; - } - } - } - break; - - case UIGestureRecognizerStateBegan: { - [self resetTriggerTimes]; - } - break; - - default: - break; - } -} - -- (BOOL)unlimitedTrigger { - return self.leftTriggerTimes == -1; -} - -- (void)beginRefreshing -{ - if (self.triggerByDrag && self.leftTriggerTimes <= 0 && !self.unlimitedTrigger) { - return; - } - - [super beginRefreshing]; -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - if (state == MJRefreshStateRefreshing) { - [self executeRefreshingCallback]; - } else if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) { - if (self.triggerByDrag) { - if (!self.unlimitedTrigger) { - self.leftTriggerTimes -= 1; - } - self.triggerByDrag = NO; - } - - if (MJRefreshStateRefreshing == oldState) { - if (self.scrollView.pagingEnabled) { - CGPoint offset = self.scrollView.contentOffset; - offset.y -= self.scrollView.mj_insetB; - [UIView animateWithDuration:self.slowAnimationDuration animations:^{ - self.scrollView.contentOffset = offset; - - if (self.endRefreshingAnimationBeginAction) { - self.endRefreshingAnimationBeginAction(); - } - } completion:^(BOOL finished) { - if (self.endRefreshingCompletionBlock) { - self.endRefreshingCompletionBlock(); - } - }]; - return; - } - - if (self.endRefreshingCompletionBlock) { - self.endRefreshingCompletionBlock(); - } - } - } -} - -- (void)resetTriggerTimes { - self.leftTriggerTimes = self.autoTriggerTimes; -} - -- (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 + self.ignoredScrollViewContentInsetBottom; - } -} - -- (void)setAutoTriggerTimes:(NSInteger)autoTriggerTimes { - _autoTriggerTimes = autoTriggerTimes; - self.leftTriggerTimes = autoTriggerTimes; -} -@end diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h b/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h deleted file mode 100644 index 8484372..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// MJRefreshBackFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshBackFooter : MJRefreshFooter - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.m b/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.m deleted file mode 100644 index 4990ca5..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.m +++ /dev/null @@ -1,158 +0,0 @@ -// -// MJRefreshBackFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshBackFooter.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" - -@interface MJRefreshBackFooter() -@property (assign, nonatomic) NSInteger lastRefreshCount; -@property (assign, nonatomic) CGFloat lastBottomDelta; -@end - -@implementation MJRefreshBackFooter - -#pragma mark - 初始化 -- (void)willMoveToSuperview:(UIView *)newSuperview -{ - [super willMoveToSuperview:newSuperview]; - - [self scrollViewContentSizeDidChange:nil]; -} - -#pragma mark - 实现父类的方法 -- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change -{ - [super scrollViewContentOffsetDidChange:change]; - - // 如果正在刷新,直接返回 - if (self.state == MJRefreshStateRefreshing) return; - - _scrollViewOriginalInset = self.scrollView.mj_inset; - - // 当前的contentOffset - CGFloat currentOffsetY = self.scrollView.mj_offsetY; - // 尾部控件刚好出现的offsetY - CGFloat happenOffsetY = [self happenOffsetY]; - // 如果是向下滚动到看不见尾部控件,直接返回 - if (currentOffsetY <= happenOffsetY) return; - - CGFloat pullingPercent = (currentOffsetY - happenOffsetY) / self.mj_h; - - // 如果已全部加载,仅设置pullingPercent,然后返回 - if (self.state == MJRefreshStateNoMoreData) { - self.pullingPercent = pullingPercent; - return; - } - - if (self.scrollView.isDragging) { - self.pullingPercent = pullingPercent; - // 普通 和 即将刷新 的临界点 - CGFloat normal2pullingOffsetY = happenOffsetY + self.mj_h; - - if (self.state == MJRefreshStateIdle && currentOffsetY > normal2pullingOffsetY) { - // 转为即将刷新状态 - self.state = MJRefreshStatePulling; - } else if (self.state == MJRefreshStatePulling && currentOffsetY <= normal2pullingOffsetY) { - // 转为普通状态 - self.state = MJRefreshStateIdle; - } - } else if (self.state == MJRefreshStatePulling) {// 即将刷新 && 手松开 - // 开始刷新 - [self beginRefreshing]; - } else if (pullingPercent < 1) { - self.pullingPercent = pullingPercent; - } -} - -- (void)scrollViewContentSizeDidChange:(NSDictionary *)change -{ - [super scrollViewContentSizeDidChange:change]; - - CGSize size = [change[NSKeyValueChangeNewKey] CGSizeValue]; - CGFloat contentHeight = size.height == 0 ? self.scrollView.mj_contentH : size.height; - // 内容的高度 - contentHeight += self.ignoredScrollViewContentInsetBottom; - // 表格的高度 - CGFloat scrollHeight = self.scrollView.mj_h - self.scrollViewOriginalInset.top - self.scrollViewOriginalInset.bottom + self.ignoredScrollViewContentInsetBottom; - // 设置位置 - CGFloat y = MAX(contentHeight, scrollHeight); - if (self.mj_y != y) { - self.mj_y = y; - } -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 根据状态来设置属性 - if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) { - // 刷新完毕 - if (MJRefreshStateRefreshing == oldState) { - [UIView animateWithDuration:self.slowAnimationDuration animations:^{ - if (self.endRefreshingAnimationBeginAction) { - self.endRefreshingAnimationBeginAction(); - } - - self.scrollView.mj_insetB -= self.lastBottomDelta; - // 自动调整透明度 - if (self.isAutomaticallyChangeAlpha) self.alpha = 0.0; - } completion:^(BOOL finished) { - self.pullingPercent = 0.0; - - if (self.endRefreshingCompletionBlock) { - self.endRefreshingCompletionBlock(); - } - }]; - } - - CGFloat deltaH = [self heightForContentBreakView]; - // 刚刷新完毕 - if (MJRefreshStateRefreshing == oldState && deltaH > 0 && self.scrollView.mj_totalDataCount != self.lastRefreshCount) { - self.scrollView.mj_offsetY = self.scrollView.mj_offsetY; - } - } else if (state == MJRefreshStateRefreshing) { - // 记录刷新前的数量 - self.lastRefreshCount = self.scrollView.mj_totalDataCount; - - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - CGFloat bottom = self.mj_h + self.scrollViewOriginalInset.bottom; - CGFloat deltaH = [self heightForContentBreakView]; - if (deltaH < 0) { // 如果内容高度小于view的高度 - bottom -= deltaH; - } - self.lastBottomDelta = bottom - self.scrollView.mj_insetB; - self.scrollView.mj_insetB = bottom; - self.scrollView.mj_offsetY = [self happenOffsetY] + self.mj_h; - } completion:^(BOOL finished) { - [self executeRefreshingCallback]; - }]; - } -} -#pragma mark - 私有方法 -#pragma mark 获得scrollView的内容 超出 view 的高度 -- (CGFloat)heightForContentBreakView -{ - CGFloat h = self.scrollView.frame.size.height - self.scrollViewOriginalInset.bottom - self.scrollViewOriginalInset.top; - return self.scrollView.contentSize.height - h; -} - -#pragma mark 刚好看到上拉刷新控件时的contentOffset.y -- (CGFloat)happenOffsetY -{ - CGFloat deltaH = [self heightForContentBreakView]; - if (deltaH > 0) { - return deltaH - self.scrollViewOriginalInset.top; - } else { - return - self.scrollViewOriginalInset.top; - } -} -@end diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshComponent.h b/Pods/MJRefresh/MJRefresh/Base/MJRefreshComponent.h deleted file mode 100644 index f098101..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshComponent.h +++ /dev/null @@ -1,151 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// MJRefreshComponent.h -// MJRefresh -// -// Created by MJ Lee on 15/3/4. -// Copyright (c) 2015年 小码哥. All rights reserved. -// 刷新控件的基类 - -#import -#if __has_include() -#import -#else -#import "MJRefreshConst.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -/** 刷新控件的状态 */ -typedef NS_ENUM(NSInteger, MJRefreshState) { - /** 普通闲置状态 */ - MJRefreshStateIdle = 1, - /** 松开就可以进行刷新的状态 */ - MJRefreshStatePulling, - /** 正在刷新中的状态 */ - MJRefreshStateRefreshing, - /** 即将刷新的状态 */ - MJRefreshStateWillRefresh, - /** 所有数据加载完毕,没有更多的数据了 */ - MJRefreshStateNoMoreData -}; - -/** 进入刷新状态的回调 */ -typedef void (^MJRefreshComponentRefreshingBlock)(void) MJRefreshDeprecated("first deprecated in 3.3.0 - Use `MJRefreshComponentAction` instead"); -/** 开始刷新后的回调(进入刷新状态后的回调) */ -typedef void (^MJRefreshComponentBeginRefreshingCompletionBlock)(void) MJRefreshDeprecated("first deprecated in 3.3.0 - Use `MJRefreshComponentAction` instead"); -/** 结束刷新后的回调 */ -typedef void (^MJRefreshComponentEndRefreshingCompletionBlock)(void) MJRefreshDeprecated("first deprecated in 3.3.0 - Use `MJRefreshComponentAction` instead"); - -/** 刷新用到的回调类型 */ -typedef void (^MJRefreshComponentAction)(void); - -/** 刷新控件的基类 */ -@interface MJRefreshComponent : UIView -{ - /** 记录scrollView刚开始的inset */ - UIEdgeInsets _scrollViewOriginalInset; - /** 父控件 */ - __weak UIScrollView *_scrollView; -} - -#pragma mark - 刷新动画时间控制 -/** 快速动画时间(一般用在刷新开始的回弹动画), 默认 0.25 */ -@property (nonatomic) NSTimeInterval fastAnimationDuration; -/** 慢速动画时间(一般用在刷新结束后的回弹动画), 默认 0.4*/ -@property (nonatomic) NSTimeInterval slowAnimationDuration; -/** 关闭全部默认动画效果, 可以简单粗暴地解决 CollectionView 的回弹动画 bug */ -- (instancetype)setAnimationDisabled; - -#pragma mark - 刷新回调 -/** 正在刷新的回调 */ -@property (copy, nonatomic, nullable) MJRefreshComponentAction refreshingBlock; -/** 设置回调对象和回调方法 */ -- (void)setRefreshingTarget:(id)target refreshingAction:(SEL)action; - -/** 回调对象 */ -@property (weak, nonatomic) id refreshingTarget; -/** 回调方法 */ -@property (assign, nonatomic) SEL refreshingAction; -/** 触发回调(交给子类去调用) */ -- (void)executeRefreshingCallback; - -#pragma mark - 刷新状态控制 -/** 进入刷新状态 */ -- (void)beginRefreshing; -- (void)beginRefreshingWithCompletionBlock:(void (^)(void))completionBlock; -/** 开始刷新后的回调(进入刷新状态后的回调) */ -@property (copy, nonatomic, nullable) MJRefreshComponentAction beginRefreshingCompletionBlock; -/** 带动画的结束刷新的回调 */ -@property (copy, nonatomic, nullable) MJRefreshComponentAction endRefreshingAnimateCompletionBlock MJRefreshDeprecated("first deprecated in 3.3.0 - Use `endRefreshingAnimationBeginAction` instead"); -@property (copy, nonatomic, nullable) MJRefreshComponentAction endRefreshingAnimationBeginAction; -/** 结束刷新的回调 */ -@property (copy, nonatomic, nullable) MJRefreshComponentAction endRefreshingCompletionBlock; -/** 结束刷新状态 */ -- (void)endRefreshing; -- (void)endRefreshingWithCompletionBlock:(void (^)(void))completionBlock; -/** 是否正在刷新 */ -@property (assign, nonatomic, readonly, getter=isRefreshing) BOOL refreshing; - -/** 刷新状态 一般交给子类内部实现 */ -@property (assign, nonatomic) MJRefreshState state; - -#pragma mark - 交给子类去访问 -/** 记录scrollView刚开始的inset */ -@property (assign, nonatomic, readonly) UIEdgeInsets scrollViewOriginalInset; -/** 父控件 */ -@property (weak, nonatomic, readonly) UIScrollView *scrollView; - -#pragma mark - 交给子类们去实现 -/** 初始化 */ -- (void)prepare NS_REQUIRES_SUPER; -/** 摆放子控件frame */ -- (void)placeSubviews NS_REQUIRES_SUPER; -/** 当scrollView的contentOffset发生改变的时候调用 */ -- (void)scrollViewContentOffsetDidChange:(nullable NSDictionary *)change NS_REQUIRES_SUPER; -/** 当scrollView的contentSize发生改变的时候调用 */ -- (void)scrollViewContentSizeDidChange:(nullable NSDictionary *)change NS_REQUIRES_SUPER; -/** 当scrollView的拖拽状态发生改变的时候调用 */ -- (void)scrollViewPanStateDidChange:(nullable NSDictionary *)change NS_REQUIRES_SUPER; - -/** 多语言配置 language 发生变化时调用 - - `MJRefreshConfig.defaultConfig.language` 发生改变时调用. - - ⚠️ 父类会调用 `placeSubviews` 方法, 请勿在 placeSubviews 中调用本方法, 造成死循环. 子类在需要重新布局时, 在配置完修改后, 最后再调用 super 方法, 否则可能导致配置修改后, 定位先于修改执行. - */ -- (void)i18nDidChange NS_REQUIRES_SUPER; - -#pragma mark - 其他 -/** 拉拽的百分比(交给子类重写) */ -@property (assign, nonatomic) CGFloat pullingPercent; -/** 根据拖拽比例自动切换透明度 */ -@property (assign, nonatomic, getter=isAutoChangeAlpha) BOOL autoChangeAlpha MJRefreshDeprecated("请使用automaticallyChangeAlpha属性"); -/** 根据拖拽比例自动切换透明度 */ -@property (assign, nonatomic, getter=isAutomaticallyChangeAlpha) BOOL automaticallyChangeAlpha; -@end - -@interface UILabel(MJRefresh) -+ (instancetype)mj_label; -- (CGFloat)mj_textWidth; -@end - -@interface MJRefreshComponent (ChainingGrammar) - -#pragma mark - <<< 为 Swift 扩展链式语法 >>> - -/// 自动变化透明度 -- (instancetype)autoChangeTransparency:(BOOL)isAutoChange; -/// 刷新开始后立即调用的回调 -- (instancetype)afterBeginningAction:(MJRefreshComponentAction)action; -/// 刷新动画开始后立即调用的回调 -- (instancetype)endingAnimationBeginningAction:(MJRefreshComponentAction)action; -/// 刷新结束后立即调用的回调 -- (instancetype)afterEndingAction:(MJRefreshComponentAction)action; - - -/// 需要子类必须实现 -/// @param scrollView 赋值给的 ScrollView 的 Header/Footer/Trailer -- (instancetype)linkTo:(UIScrollView *)scrollView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshComponent.m b/Pods/MJRefresh/MJRefresh/Base/MJRefreshComponent.m deleted file mode 100644 index 785df18..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshComponent.m +++ /dev/null @@ -1,323 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// MJRefreshComponent.m -// MJRefresh -// -// Created by MJ Lee on 15/3/4. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshComponent.h" -#import "MJRefreshConst.h" -#import "MJRefreshConfig.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" -#import "NSBundle+MJRefresh.h" - -@interface MJRefreshComponent() -@property (strong, nonatomic) UIPanGestureRecognizer *pan; -@end - -@implementation MJRefreshComponent -#pragma mark - 初始化 -- (instancetype)initWithFrame:(CGRect)frame -{ - if (self = [super initWithFrame:frame]) { - // 准备工作 - [self prepare]; - - // 默认是普通状态 - self.state = MJRefreshStateIdle; - self.fastAnimationDuration = 0.25; - self.slowAnimationDuration = 0.4; - } - return self; -} - -- (void)prepare -{ - // 基本属性 - self.autoresizingMask = UIViewAutoresizingFlexibleWidth; - self.backgroundColor = [UIColor clearColor]; -} - -- (void)layoutSubviews -{ - [self placeSubviews]; - - [super layoutSubviews]; -} - -- (void)placeSubviews{} - -- (void)willMoveToSuperview:(UIView *)newSuperview -{ - [super willMoveToSuperview:newSuperview]; - - // 如果不是UIScrollView,不做任何事情 - if (newSuperview && ![newSuperview isKindOfClass:[UIScrollView class]]) return; - - // 旧的父控件移除监听 - [self removeObservers]; - - if (newSuperview) { // 新的父控件 - // 记录UIScrollView - _scrollView = (UIScrollView *)newSuperview; - - // 设置宽度 - self.mj_w = _scrollView.mj_w; - // 设置位置 - self.mj_x = -_scrollView.mj_insetL; - - // 设置永远支持垂直弹簧效果 - _scrollView.alwaysBounceVertical = YES; - // 记录UIScrollView最开始的contentInset - _scrollViewOriginalInset = _scrollView.mj_inset; - - // 添加监听 - [self addObservers]; - } -} - -- (void)drawRect:(CGRect)rect -{ - [super drawRect:rect]; - - if (self.state == MJRefreshStateWillRefresh) { - // 预防view还没显示出来就调用了beginRefreshing - self.state = MJRefreshStateRefreshing; - } -} - -#pragma mark - KVO监听 -- (void)addObservers -{ - NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld; - [self.scrollView addObserver:self forKeyPath:MJRefreshKeyPathContentOffset options:options context:nil]; - [self.scrollView addObserver:self forKeyPath:MJRefreshKeyPathContentSize options:options context:nil]; - self.pan = self.scrollView.panGestureRecognizer; - [self.pan addObserver:self forKeyPath:MJRefreshKeyPathPanState options:options context:nil]; - - [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(i18nDidChange) name:MJRefreshDidChangeLanguageNotification object:MJRefreshConfig.defaultConfig]; -} - -- (void)removeObservers -{ - [self.superview removeObserver:self forKeyPath:MJRefreshKeyPathContentOffset]; - [self.superview removeObserver:self forKeyPath:MJRefreshKeyPathContentSize]; - [self.pan removeObserver:self forKeyPath:MJRefreshKeyPathPanState]; - self.pan = nil; -} - -- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context -{ - // 遇到这些情况就直接返回 - if (!self.userInteractionEnabled) return; - - // 这个就算看不见也需要处理 - if ([keyPath isEqualToString:MJRefreshKeyPathContentSize]) { - [self scrollViewContentSizeDidChange:change]; - } - - // 看不见 - if (self.hidden) return; - if ([keyPath isEqualToString:MJRefreshKeyPathContentOffset]) { - [self scrollViewContentOffsetDidChange:change]; - } else if ([keyPath isEqualToString:MJRefreshKeyPathPanState]) { - [self scrollViewPanStateDidChange:change]; - } -} - -- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change{} -- (void)scrollViewContentSizeDidChange:(NSDictionary *)change{} -- (void)scrollViewPanStateDidChange:(NSDictionary *)change{} - -- (void)i18nDidChange { - [self placeSubviews]; -} - -#pragma mark - 公共方法 -#pragma mark 设置回调对象和回调方法 -- (void)setRefreshingTarget:(id)target refreshingAction:(SEL)action -{ - self.refreshingTarget = target; - self.refreshingAction = action; -} - -- (void)setState:(MJRefreshState)state -{ - _state = state; - - // 加入主队列的目的是等setState:方法调用完毕、设置完文字后再去布局子控件 - MJRefreshDispatchAsyncOnMainQueue([self setNeedsLayout];) -} - -#pragma mark 进入刷新状态 -- (void)beginRefreshing -{ - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.alpha = 1.0; - }]; - self.pullingPercent = 1.0; - // 只要正在刷新,就完全显示 - if (self.window) { - self.state = MJRefreshStateRefreshing; - } else { - // 预防正在刷新中时,调用本方法使得header inset回置失败 - if (self.state != MJRefreshStateRefreshing) { - self.state = MJRefreshStateWillRefresh; - // 刷新(预防从另一个控制器回到这个控制器的情况,回来要重新刷新一下) - [self setNeedsDisplay]; - } - } -} - -- (void)beginRefreshingWithCompletionBlock:(void (^)(void))completionBlock -{ - self.beginRefreshingCompletionBlock = completionBlock; - - [self beginRefreshing]; -} - -#pragma mark 结束刷新状态 -- (void)endRefreshing -{ - MJRefreshDispatchAsyncOnMainQueue(self.state = MJRefreshStateIdle;) -} - -- (void)endRefreshingWithCompletionBlock:(void (^)(void))completionBlock -{ - self.endRefreshingCompletionBlock = completionBlock; - - [self endRefreshing]; -} - -#pragma mark 是否正在刷新 -- (BOOL)isRefreshing -{ - return self.state == MJRefreshStateRefreshing || self.state == MJRefreshStateWillRefresh; -} - -#pragma mark 自动切换透明度 -- (void)setAutoChangeAlpha:(BOOL)autoChangeAlpha -{ - self.automaticallyChangeAlpha = autoChangeAlpha; -} - -- (BOOL)isAutoChangeAlpha -{ - return self.isAutomaticallyChangeAlpha; -} - -- (void)setAutomaticallyChangeAlpha:(BOOL)automaticallyChangeAlpha -{ - _automaticallyChangeAlpha = automaticallyChangeAlpha; - - if (self.isRefreshing) return; - - if (automaticallyChangeAlpha) { - self.alpha = self.pullingPercent; - } else { - self.alpha = 1.0; - } -} - -#pragma mark 根据拖拽进度设置透明度 -- (void)setPullingPercent:(CGFloat)pullingPercent -{ - _pullingPercent = pullingPercent; - - if (self.isRefreshing) return; - - if (self.isAutomaticallyChangeAlpha) { - self.alpha = pullingPercent; - } -} - -#pragma mark - 内部方法 -- (void)executeRefreshingCallback -{ - if (self.refreshingBlock) { - self.refreshingBlock(); - } - if ([self.refreshingTarget respondsToSelector:self.refreshingAction]) { - MJRefreshMsgSend(MJRefreshMsgTarget(self.refreshingTarget), self.refreshingAction, self); - } - if (self.beginRefreshingCompletionBlock) { - self.beginRefreshingCompletionBlock(); - } -} - -#pragma mark - 刷新动画时间控制 -- (instancetype)setAnimationDisabled { - self.fastAnimationDuration = 0; - self.slowAnimationDuration = 0; - - return self; -} - -#pragma mark - <<< Deprecation compatible function >>> - -- (void)setEndRefreshingAnimateCompletionBlock:(MJRefreshComponentEndRefreshingCompletionBlock)endRefreshingAnimateCompletionBlock { - _endRefreshingAnimationBeginAction = endRefreshingAnimateCompletionBlock; -} -@end - -@implementation UILabel(MJRefresh) -+ (instancetype)mj_label -{ - UILabel *label = [[self alloc] init]; - label.font = MJRefreshLabelFont; - label.textColor = MJRefreshLabelTextColor; - label.autoresizingMask = UIViewAutoresizingFlexibleWidth; - label.textAlignment = NSTextAlignmentCenter; - label.backgroundColor = [UIColor clearColor]; - return label; -} - -- (CGFloat)mj_textWidth { - CGFloat stringWidth = 0; - CGSize size = CGSizeMake(MAXFLOAT, MAXFLOAT); - - if (self.attributedText) { - if (self.attributedText.length == 0) { return 0; } - stringWidth = [self.attributedText boundingRectWithSize:size - options:NSStringDrawingUsesLineFragmentOrigin - context:nil].size.width; - } else { - if (self.text.length == 0) { return 0; } - NSAssert(self.font != nil, @"请检查 mj_label's `font` 是否设置正确"); - stringWidth = [self.text boundingRectWithSize:size - options:NSStringDrawingUsesLineFragmentOrigin - attributes:@{NSFontAttributeName:self.font} - context:nil].size.width; - } - return stringWidth; -} -@end - - -#pragma mark - <<< 为 Swift 扩展链式语法 >>> - -@implementation MJRefreshComponent (ChainingGrammar) - -- (instancetype)autoChangeTransparency:(BOOL)isAutoChange { - self.automaticallyChangeAlpha = isAutoChange; - return self; -} -- (instancetype)afterBeginningAction:(MJRefreshComponentAction)action { - self.beginRefreshingCompletionBlock = action; - return self; -} -- (instancetype)endingAnimationBeginningAction:(MJRefreshComponentAction)action { - self.endRefreshingAnimationBeginAction = action; - return self; -} -- (instancetype)afterEndingAction:(MJRefreshComponentAction)action { - self.endRefreshingCompletionBlock = action; - return self; -} - -- (instancetype)linkTo:(UIScrollView *)scrollView { - return self; -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h b/Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h deleted file mode 100644 index 7b7c7b6..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h +++ /dev/null @@ -1,37 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// MJRefreshFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/3/5. -// Copyright (c) 2015年 小码哥. All rights reserved. -// 上拉刷新控件 - -#if __has_include() -#import -#else -#import "MJRefreshComponent.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshFooter : MJRefreshComponent -/** 创建footer */ -+ (instancetype)footerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; -/** 创建footer */ -+ (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; - -/** 提示没有更多的数据 */ -- (void)endRefreshingWithNoMoreData; -- (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); - -/** 重置没有更多的数据(消除没有更多数据的状态) */ -- (void)resetNoMoreData; - -/** 忽略多少scrollView的contentInset的bottom */ -@property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; - -/** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。默认是NO) */ -@property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden MJRefreshDeprecated("已废弃此属性,开发者请自行控制footer的显示和隐藏"); -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.m b/Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.m deleted file mode 100644 index 8096fdb..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.m +++ /dev/null @@ -1,71 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// MJRefreshFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/3/5. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshFooter.h" -#import "UIScrollView+MJRefresh.h" -#import "UIView+MJExtension.h" - -@interface MJRefreshFooter() - -@end - -@implementation MJRefreshFooter -#pragma mark - 构造方法 -+ (instancetype)footerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock -{ - MJRefreshFooter *cmp = [[self alloc] init]; - cmp.refreshingBlock = refreshingBlock; - return cmp; -} -+ (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action -{ - MJRefreshFooter *cmp = [[self alloc] init]; - [cmp setRefreshingTarget:target refreshingAction:action]; - return cmp; -} - -#pragma mark - 重写父类的方法 -- (void)prepare -{ - [super prepare]; - - // 设置自己的高度 - self.mj_h = MJRefreshFooterHeight; - - // 默认不会自动隐藏 -// self.automaticallyHidden = NO; -} - -#pragma mark . 链式语法部分 . - -- (instancetype)linkTo:(UIScrollView *)scrollView { - scrollView.mj_footer = self; - return self; -} - -#pragma mark - 公共方法 -- (void)endRefreshingWithNoMoreData -{ - MJRefreshDispatchAsyncOnMainQueue(self.state = MJRefreshStateNoMoreData;) -} - -- (void)noticeNoMoreData -{ - [self endRefreshingWithNoMoreData]; -} - -- (void)resetNoMoreData -{ - MJRefreshDispatchAsyncOnMainQueue(self.state = MJRefreshStateIdle;) -} - -- (void)setAutomaticallyHidden:(BOOL)automaticallyHidden -{ - _automaticallyHidden = automaticallyHidden; -} -@end diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h b/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h deleted file mode 100644 index 95d8cb2..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h +++ /dev/null @@ -1,35 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// MJRefreshHeader.h -// MJRefresh -// -// Created by MJ Lee on 15/3/4. -// Copyright (c) 2015年 小码哥. All rights reserved. -// 下拉刷新控件:负责监控用户下拉的状态 - -#if __has_include() -#import -#else -#import "MJRefreshComponent.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshHeader : MJRefreshComponent -/** 创建header */ -+ (instancetype)headerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; -/** 创建header */ -+ (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; - -/** 这个key用来存储上一次下拉刷新成功的时间 */ -@property (copy, nonatomic) NSString *lastUpdatedTimeKey; -/** 上一次下拉刷新成功的时间 */ -@property (strong, nonatomic, readonly, nullable) NSDate *lastUpdatedTime; - -/** 忽略多少scrollView的contentInset的top */ -@property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; - -/** 默认是关闭状态, 如果遇到 CollectionView 的动画异常问题可以尝试打开 */ -@property (nonatomic) BOOL isCollectionViewAnimationBug; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.m b/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.m deleted file mode 100644 index b276412..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.m +++ /dev/null @@ -1,297 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// MJRefreshHeader.m -// MJRefresh -// -// Created by MJ Lee on 15/3/4. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshHeader.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" - -NSString * const MJRefreshHeaderRefreshing2IdleBoundsKey = @"MJRefreshHeaderRefreshing2IdleBounds"; -NSString * const MJRefreshHeaderRefreshingBoundsKey = @"MJRefreshHeaderRefreshingBounds"; - -@interface MJRefreshHeader() -@property (assign, nonatomic) CGFloat insetTDelta; -@end - -@implementation MJRefreshHeader -#pragma mark - 构造方法 -+ (instancetype)headerWithRefreshingBlock:(MJRefreshComponentAction)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)resetInset { - if (@available(iOS 11.0, *)) { - } else { - // 如果 iOS 10 及以下系统在刷新时, push 新的 VC, 等待刷新完成后回来, 会导致顶部 Insets.top 异常, 不能 resetInset, 检查一下这种特殊情况 - if (!self.window) { 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.insetTDelta = _scrollViewOriginalInset.top - insetT; - // 避免 CollectionView 在使用根据 Autolayout 和 内容自动伸缩 Cell, 刷新时导致的 Layout 异常渲染问题 - if (fabs(self.scrollView.mj_insetT - insetT) > FLT_EPSILON) { - self.scrollView.mj_insetT = insetT; - } -} - -- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change -{ - [super scrollViewContentOffsetDidChange:change]; - - // 在刷新的refreshing状态 - if (self.state == MJRefreshStateRefreshing) { - [self resetInset]; - 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; - - [self headerEndingAction]; - } else if (state == MJRefreshStateRefreshing) { - [self headerRefreshingAction]; - } -} - -- (void)headerEndingAction { - // 保存刷新时间 - [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:self.lastUpdatedTimeKey]; - [[NSUserDefaults standardUserDefaults] synchronize]; - - // 默认使用 UIViewAnimation 动画 - if (!self.isCollectionViewAnimationBug) { - // 恢复inset和offset - [UIView animateWithDuration:self.slowAnimationDuration animations:^{ - self.scrollView.mj_insetT += self.insetTDelta; - - if (self.endRefreshingAnimationBeginAction) { - self.endRefreshingAnimationBeginAction(); - } - // 自动调整透明度 - if (self.isAutomaticallyChangeAlpha) self.alpha = 0.0; - } completion:^(BOOL finished) { - self.pullingPercent = 0.0; - - if (self.endRefreshingCompletionBlock) { - self.endRefreshingCompletionBlock(); - } - }]; - - return; - } - - /** - 这个解决方法的思路出自 https://github.com/CoderMJLee/MJRefresh/pull/844 - 修改了用+ [UIView animateWithDuration: animations:]实现的修改contentInset的动画 - fix issue#225 https://github.com/CoderMJLee/MJRefresh/issues/225 - 另一种解法 pull#737 https://github.com/CoderMJLee/MJRefresh/pull/737 - - 同时, 处理了 Refreshing 中的动画替换. - */ - - // 由于修改 Inset 会导致 self.pullingPercent 联动设置 self.alpha, 故提前获取 alpha 值, 后续用于还原 alpha 动画 - CGFloat viewAlpha = self.alpha; - - self.scrollView.mj_insetT += self.insetTDelta; - // 禁用交互, 如果不禁用可能会引起渲染问题. - self.scrollView.userInteractionEnabled = NO; - - //CAAnimation keyPath 不支持 contentInset 用Bounds的动画代替 - CABasicAnimation *boundsAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"]; - boundsAnimation.fromValue = [NSValue valueWithCGRect:CGRectOffset(self.scrollView.bounds, 0, self.insetTDelta)]; - boundsAnimation.duration = self.slowAnimationDuration; - //在delegate里移除 - boundsAnimation.removedOnCompletion = NO; - boundsAnimation.fillMode = kCAFillModeBoth; - boundsAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - boundsAnimation.delegate = self; - [boundsAnimation setValue:MJRefreshHeaderRefreshing2IdleBoundsKey forKey:@"identity"]; - - [self.scrollView.layer addAnimation:boundsAnimation forKey:MJRefreshHeaderRefreshing2IdleBoundsKey]; - - if (self.endRefreshingAnimationBeginAction) { - self.endRefreshingAnimationBeginAction(); - } - // 自动调整透明度的动画 - if (self.isAutomaticallyChangeAlpha) { - CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; - opacityAnimation.fromValue = @(viewAlpha); - opacityAnimation.toValue = @(0.0); - opacityAnimation.duration = self.slowAnimationDuration; - opacityAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - [self.layer addAnimation:opacityAnimation forKey:@"MJRefreshHeaderRefreshing2IdleOpacity"]; - - // 由于修改了 inset 导致, pullingPercent 被设置值, alpha 已经被提前修改为 0 了. 所以这里不用置 0, 但为了代码的严谨性, 不依赖其他的特殊实现方式, 这里还是置 0. - self.alpha = 0; - } -} - -- (void)headerRefreshingAction { - // 默认使用 UIViewAnimation 动画 - if (!self.isCollectionViewAnimationBug) { - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - if (self.scrollView.panGestureRecognizer.state != UIGestureRecognizerStateCancelled) { - 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]; - }]; - return; - } - - if (self.scrollView.panGestureRecognizer.state != UIGestureRecognizerStateCancelled) { - CGFloat top = self.scrollViewOriginalInset.top + self.mj_h; - // 禁用交互, 如果不禁用可能会引起渲染问题. - self.scrollView.userInteractionEnabled = NO; - - // CAAnimation keyPath不支持 contentOffset 用Bounds的动画代替 - CABasicAnimation *boundsAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"]; - CGRect bounds = self.scrollView.bounds; - bounds.origin.y = -top; - boundsAnimation.fromValue = [NSValue valueWithCGRect:self.scrollView.bounds]; - boundsAnimation.toValue = [NSValue valueWithCGRect:bounds]; - boundsAnimation.duration = self.fastAnimationDuration; - //在delegate里移除 - boundsAnimation.removedOnCompletion = NO; - boundsAnimation.fillMode = kCAFillModeBoth; - boundsAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - boundsAnimation.delegate = self; - [boundsAnimation setValue:MJRefreshHeaderRefreshingBoundsKey forKey:@"identity"]; - [self.scrollView.layer addAnimation:boundsAnimation forKey:MJRefreshHeaderRefreshingBoundsKey]; - } else { - [self executeRefreshingCallback]; - } -} - -#pragma mark . 链式语法部分 . - -- (instancetype)linkTo:(UIScrollView *)scrollView { - scrollView.mj_header = self; - return self; -} - -#pragma mark - CAAnimationDelegate -- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag { - NSString *identity = [anim valueForKey:@"identity"]; - if ([identity isEqualToString:MJRefreshHeaderRefreshing2IdleBoundsKey]) { - self.pullingPercent = 0.0; - self.scrollView.userInteractionEnabled = YES; - if (self.endRefreshingCompletionBlock) { - self.endRefreshingCompletionBlock(); - } - } else if ([identity isEqualToString:MJRefreshHeaderRefreshingBoundsKey]) { - // 避免出现 end 先于 Refreshing 状态 - if (self.state != MJRefreshStateIdle) { - CGFloat top = self.scrollViewOriginalInset.top + self.mj_h; - self.scrollView.mj_insetT = top; - // 设置最终滚动位置 - CGPoint offset = self.scrollView.contentOffset; - offset.y = -top; - [self.scrollView setContentOffset:offset animated:NO]; - } - self.scrollView.userInteractionEnabled = YES; - [self executeRefreshingCallback]; - } - - if ([self.scrollView.layer animationForKey:MJRefreshHeaderRefreshing2IdleBoundsKey]) { - [self.scrollView.layer removeAnimationForKey:MJRefreshHeaderRefreshing2IdleBoundsKey]; - } - - if ([self.scrollView.layer animationForKey:MJRefreshHeaderRefreshingBoundsKey]) { - [self.scrollView.layer removeAnimationForKey:MJRefreshHeaderRefreshingBoundsKey]; - } -} - -#pragma mark - 公共方法 -- (NSDate *)lastUpdatedTime -{ - return [[NSUserDefaults standardUserDefaults] objectForKey:self.lastUpdatedTimeKey]; -} - -- (void)setIgnoredScrollViewContentInsetTop:(CGFloat)ignoredScrollViewContentInsetTop { - _ignoredScrollViewContentInsetTop = ignoredScrollViewContentInsetTop; - - self.mj_y = - self.mj_h - _ignoredScrollViewContentInsetTop; -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshTrailer.h b/Pods/MJRefresh/MJRefresh/Base/MJRefreshTrailer.h deleted file mode 100644 index ca4c7ea..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshTrailer.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// MJRefreshTrailer.h -// MJRefresh -// -// Created by kinarobin on 2020/5/3. -// Copyright © 2020 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshComponent.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshTrailer : MJRefreshComponent - -/** 创建trailer*/ -+ (instancetype)trailerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; -/** 创建trailer */ -+ (instancetype)trailerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; - -/** 忽略多少scrollView的contentInset的right */ -@property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetRight; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Base/MJRefreshTrailer.m b/Pods/MJRefresh/MJRefresh/Base/MJRefreshTrailer.m deleted file mode 100644 index da66f20..0000000 --- a/Pods/MJRefresh/MJRefresh/Base/MJRefreshTrailer.m +++ /dev/null @@ -1,179 +0,0 @@ -// -// MJRefreshTrailer.m -// MJRefresh -// -// Created by kinarobin on 2020/5/3. -// Copyright © 2020 小码哥. All rights reserved. -// - -#import "MJRefreshTrailer.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" -#import "UIScrollView+MJExtension.h" - -@interface MJRefreshTrailer() -@property (assign, nonatomic) NSInteger lastRefreshCount; -@property (assign, nonatomic) CGFloat lastRightDelta; -@end - -@implementation MJRefreshTrailer - -#pragma mark - 构造方法 -+ (instancetype)trailerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock { - MJRefreshTrailer *cmp = [[self alloc] init]; - cmp.refreshingBlock = refreshingBlock; - return cmp; -} - -+ (instancetype)trailerWithRefreshingTarget:(id)target refreshingAction:(SEL)action { - MJRefreshTrailer *cmp = [[self alloc] init]; - [cmp setRefreshingTarget:target refreshingAction:action]; - return cmp; -} - -- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change { - [super scrollViewContentOffsetDidChange:change]; - - // 如果正在刷新,直接返回 - if (self.state == MJRefreshStateRefreshing) return; - - _scrollViewOriginalInset = self.scrollView.mj_inset; - - // 当前的contentOffset - CGFloat currentOffsetX = self.scrollView.mj_offsetX; - // 尾部控件刚好出现的offsetX - CGFloat happenOffsetX = [self happenOffsetX]; - // 如果是向右滚动到看不见右边控件,直接返回 - if (currentOffsetX <= happenOffsetX) return; - - CGFloat pullingPercent = (currentOffsetX - happenOffsetX) / self.mj_w; - - // 如果已全部加载,仅设置pullingPercent,然后返回 - if (self.state == MJRefreshStateNoMoreData) { - self.pullingPercent = pullingPercent; - return; - } - - if (self.scrollView.isDragging) { - self.pullingPercent = pullingPercent; - // 普通 和 即将刷新 的临界点 - CGFloat normal2pullingOffsetX = happenOffsetX + self.mj_w; - - if (self.state == MJRefreshStateIdle && currentOffsetX > normal2pullingOffsetX) { - self.state = MJRefreshStatePulling; - } else if (self.state == MJRefreshStatePulling && currentOffsetX <= normal2pullingOffsetX) { - // 转为普通状态 - self.state = MJRefreshStateIdle; - } - } else if (self.state == MJRefreshStatePulling) {// 即将刷新 && 手松开 - // 开始刷新 - [self beginRefreshing]; - } else if (pullingPercent < 1) { - self.pullingPercent = pullingPercent; - } -} - -- (void)setState:(MJRefreshState)state { - MJRefreshCheckState - // 根据状态来设置属性 - if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) { - // 刷新完毕 - if (MJRefreshStateRefreshing == oldState) { - [UIView animateWithDuration:self.slowAnimationDuration animations:^{ - if (self.endRefreshingAnimationBeginAction) { - self.endRefreshingAnimationBeginAction(); - } - - self.scrollView.mj_insetR -= self.lastRightDelta; - // 自动调整透明度 - if (self.isAutomaticallyChangeAlpha) self.alpha = 0.0; - } completion:^(BOOL finished) { - self.pullingPercent = 0.0; - - if (self.endRefreshingCompletionBlock) { - self.endRefreshingCompletionBlock(); - } - }]; - } - - CGFloat deltaW = [self widthForContentBreakView]; - // 刚刷新完毕 - if (MJRefreshStateRefreshing == oldState && deltaW > 0 && self.scrollView.mj_totalDataCount != self.lastRefreshCount) { - self.scrollView.mj_offsetX = self.scrollView.mj_offsetX; - } - } else if (state == MJRefreshStateRefreshing) { - // 记录刷新前的数量 - self.lastRefreshCount = self.scrollView.mj_totalDataCount; - - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - CGFloat right = self.mj_w + self.scrollViewOriginalInset.right; - CGFloat deltaW = [self widthForContentBreakView]; - if (deltaW < 0) { // 如果内容宽度小于view的宽度 - right -= deltaW; - } - self.lastRightDelta = right - self.scrollView.mj_insetR; - self.scrollView.mj_insetR = right; - - // 设置滚动位置 - CGPoint offset = self.scrollView.contentOffset; - offset.x = [self happenOffsetX] + self.mj_w; - [self.scrollView setContentOffset:offset animated:NO]; - } completion:^(BOOL finished) { - [self executeRefreshingCallback]; - }]; - } -} - -- (void)scrollViewContentSizeDidChange:(NSDictionary *)change { - [super scrollViewContentSizeDidChange:change]; - - // 内容的宽度 - CGFloat contentWidth = self.scrollView.mj_contentW + self.ignoredScrollViewContentInsetRight; - // 表格的宽度 - CGFloat scrollWidth = self.scrollView.mj_w - self.scrollViewOriginalInset.left - self.scrollViewOriginalInset.right + self.ignoredScrollViewContentInsetRight; - // 设置位置和尺寸 - self.mj_x = MAX(contentWidth, scrollWidth); -} - -- (void)placeSubviews { - [super placeSubviews]; - - self.mj_h = _scrollView.mj_h; - // 设置自己的宽度 - self.mj_w = MJRefreshTrailWidth; -} - -- (void)willMoveToSuperview:(UIView *)newSuperview { - [super willMoveToSuperview:newSuperview]; - - if (newSuperview) { - // 设置支持水平弹簧效果 - _scrollView.alwaysBounceHorizontal = YES; - _scrollView.alwaysBounceVertical = NO; - } -} - -#pragma mark . 链式语法部分 . - -- (instancetype)linkTo:(UIScrollView *)scrollView { - scrollView.mj_trailer = self; - return self; -} - -#pragma mark - 刚好看到上拉刷新控件时的contentOffset.x -- (CGFloat)happenOffsetX { - CGFloat deltaW = [self widthForContentBreakView]; - if (deltaW > 0) { - return deltaW - self.scrollViewOriginalInset.left; - } else { - return - self.scrollViewOriginalInset.left; - } -} - -#pragma mark 获得scrollView的内容 超出 view 的宽度 -- (CGFloat)widthForContentBreakView { - CGFloat w = self.scrollView.frame.size.width - self.scrollViewOriginalInset.right - self.scrollViewOriginalInset.left; - return self.scrollView.contentSize.width - w; -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h b/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h deleted file mode 100644 index f346157..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// MJRefreshAutoGifFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshAutoStateFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter -@property (weak, nonatomic, readonly) UIImageView *gifView; - -/** 设置state状态下的动画图片images 动画持续时间duration*/ -- (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; -- (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m b/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m deleted file mode 100644 index 213f69f..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m +++ /dev/null @@ -1,121 +0,0 @@ -// -// MJRefreshAutoGifFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshAutoGifFooter.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" - -@interface MJRefreshAutoGifFooter() -{ - __unsafe_unretained UIImageView *_gifView; -} -/** 所有状态对应的动画图片 */ -@property (strong, nonatomic) NSMutableDictionary *stateImages; -/** 所有状态对应的动画时间 */ -@property (strong, nonatomic) NSMutableDictionary *stateDurations; -@end - -@implementation MJRefreshAutoGifFooter -#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 - 公共方法 -- (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state -{ - if (images == nil) return self; - - 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; - } - return self; -} - -- (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state -{ - return [self setImages:images duration:images.count * 0.1 forState:state]; -} - -#pragma mark - 实现父类的方法 -- (void)prepare -{ - [super prepare]; - - // 初始化间距 - self.labelLeftInset = 20; -} - -- (void)placeSubviews -{ - [super placeSubviews]; - - if (self.gifView.constraints.count) return; - - self.gifView.frame = self.bounds; - if (self.isRefreshingTitleHidden) { - self.gifView.contentMode = UIViewContentModeCenter; - } else { - self.gifView.contentMode = UIViewContentModeRight; - self.gifView.mj_w = self.mj_w * 0.5 - self.labelLeftInset - self.stateLabel.mj_textWidth * 0.5; - } -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 根据状态做事情 - if (state == MJRefreshStateRefreshing) { - NSArray *images = self.stateImages[@(state)]; - if (images.count == 0) return; - [self.gifView stopAnimating]; - - self.gifView.hidden = NO; - 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 == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) { - [self.gifView stopAnimating]; - self.gifView.hidden = YES; - } -} -@end - diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h b/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h deleted file mode 100644 index f8d1e04..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// MJRefreshAutoNormalFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshAutoStateFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter -@property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; - -/** 菊花的样式 */ -@property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); -@end - - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m b/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m deleted file mode 100644 index 9e6a03d..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m +++ /dev/null @@ -1,81 +0,0 @@ -// -// MJRefreshAutoNormalFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshAutoNormalFooter.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" - -@interface MJRefreshAutoNormalFooter() -@property (weak, nonatomic) UIActivityIndicatorView *loadingView; -@end - -@implementation MJRefreshAutoNormalFooter -#pragma mark - 懒加载子控件 -- (UIActivityIndicatorView *)loadingView -{ - if (!_loadingView) { - UIActivityIndicatorView *loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:_activityIndicatorViewStyle]; - loadingView.hidesWhenStopped = YES; - [self addSubview:_loadingView = loadingView]; - } - return _loadingView; -} - -- (void)setActivityIndicatorViewStyle:(UIActivityIndicatorViewStyle)activityIndicatorViewStyle -{ - _activityIndicatorViewStyle = activityIndicatorViewStyle; - - [self.loadingView removeFromSuperview]; - self.loadingView = nil; - [self setNeedsLayout]; -} -#pragma mark - 重写父类的方法 -- (void)prepare -{ - [super prepare]; - -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 - if (@available(iOS 13.0, *)) { - _activityIndicatorViewStyle = UIActivityIndicatorViewStyleMedium; - return; - } -#endif - - _activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; -} - -- (void)placeSubviews -{ - [super placeSubviews]; - - if (self.loadingView.constraints.count) return; - - // 圈圈 - CGFloat loadingCenterX = self.mj_w * 0.5; - if (!self.isRefreshingTitleHidden) { - loadingCenterX -= self.stateLabel.mj_textWidth * 0.5 + self.labelLeftInset; - } - CGFloat loadingCenterY = self.mj_h * 0.5; - self.loadingView.center = CGPointMake(loadingCenterX, loadingCenterY); -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 根据状态做事情 - if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) { - [self.loadingView stopAnimating]; - } else if (state == MJRefreshStateRefreshing) { - [self.loadingView startAnimating]; - } -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h b/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h deleted file mode 100644 index c83622d..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// MJRefreshAutoStateFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/6/13. -// Copyright © 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshAutoFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshAutoStateFooter : MJRefreshAutoFooter -/** 文字距离圈圈、箭头的距离 */ -@property (assign, nonatomic) CGFloat labelLeftInset; -/** 显示刷新状态的label */ -@property (weak, nonatomic, readonly) UILabel *stateLabel; - -/** 设置state状态下的文字 */ -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; - -/** 隐藏刷新状态的文字 */ -@property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m b/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m deleted file mode 100644 index e5ff652..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m +++ /dev/null @@ -1,119 +0,0 @@ -// -// MJRefreshAutoStateFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/6/13. -// Copyright © 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshAutoStateFooter.h" -#import "NSBundle+MJRefresh.h" - -@interface MJRefreshAutoFooter (TapTriggerFix) - -- (void)beginRefreshingWithoutValidation; -@end - - -@implementation MJRefreshAutoFooter (TapTriggerFix) - -- (void)beginRefreshingWithoutValidation { - [super beginRefreshing]; -} - -@end - -@interface MJRefreshAutoStateFooter() -{ - /** 显示刷新状态的label */ - __unsafe_unretained UILabel *_stateLabel; -} -/** 所有状态对应的文字 */ -@property (strong, nonatomic) NSMutableDictionary *stateTitles; -@end - -@implementation MJRefreshAutoStateFooter -#pragma mark - 懒加载 -- (NSMutableDictionary *)stateTitles -{ - if (!_stateTitles) { - self.stateTitles = [NSMutableDictionary dictionary]; - } - return _stateTitles; -} - -- (UILabel *)stateLabel -{ - if (!_stateLabel) { - [self addSubview:_stateLabel = [UILabel mj_label]]; - } - return _stateLabel; -} - -#pragma mark - 公共方法 -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state -{ - if (title == nil) return self; - self.stateTitles[@(state)] = title; - self.stateLabel.text = self.stateTitles[@(self.state)]; - return self; -} - -#pragma mark - 私有方法 -- (void)stateLabelClick -{ - if (self.state == MJRefreshStateIdle) { - [super beginRefreshingWithoutValidation]; - } -} - -- (void)textConfiguration { - // 初始化文字 - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshAutoFooterIdleText] forState:MJRefreshStateIdle]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshAutoFooterRefreshingText] forState:MJRefreshStateRefreshing]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshAutoFooterNoMoreDataText] forState:MJRefreshStateNoMoreData]; -} - -#pragma mark - 重写父类的方法 -- (void)prepare -{ - [super prepare]; - - // 初始化间距 - self.labelLeftInset = MJRefreshLabelLeftInset; - - [self textConfiguration]; - - // 监听label - self.stateLabel.userInteractionEnabled = YES; - [self.stateLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateLabelClick)]]; -} - -- (void)i18nDidChange { - [self textConfiguration]; - - [super i18nDidChange]; -} - - -- (void)placeSubviews -{ - [super placeSubviews]; - - if (self.stateLabel.constraints.count) return; - - // 状态标签 - self.stateLabel.frame = self.bounds; -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - if (self.isRefreshingTitleHidden && state == MJRefreshStateRefreshing) { - self.stateLabel.text = nil; - } else { - self.stateLabel.text = self.stateTitles[@(state)]; - } -} -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h b/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h deleted file mode 100644 index a7ba065..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// MJRefreshBackGifFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshBackStateFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshBackGifFooter : MJRefreshBackStateFooter -@property (weak, nonatomic, readonly) UIImageView *gifView; - -/** 设置state状态下的动画图片images 动画持续时间duration*/ -- (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; -- (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m b/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m deleted file mode 100644 index 23c626c..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m +++ /dev/null @@ -1,132 +0,0 @@ -// -// MJRefreshBackGifFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshBackGifFooter.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" - -@interface MJRefreshBackGifFooter() -{ - __unsafe_unretained UIImageView *_gifView; -} -/** 所有状态对应的动画图片 */ -@property (strong, nonatomic) NSMutableDictionary *stateImages; -/** 所有状态对应的动画时间 */ -@property (strong, nonatomic) NSMutableDictionary *stateDurations; -@end - -@implementation MJRefreshBackGifFooter -#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 - 公共方法 -- (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state -{ - if (images == nil) return self; - - 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; - } - return self; -} - -- (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state -{ - return [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.gifView.contentMode = UIViewContentModeCenter; - } else { - self.gifView.contentMode = UIViewContentModeRight; - self.gifView.mj_w = self.mj_w * 0.5 - self.labelLeftInset - self.stateLabel.mj_textWidth * 0.5; - } -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 根据状态做事情 - if (state == MJRefreshStatePulling || state == MJRefreshStateRefreshing) { - NSArray *images = self.stateImages[@(state)]; - if (images.count == 0) return; - - self.gifView.hidden = NO; - [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.hidden = NO; - } else if (state == MJRefreshStateNoMoreData) { - self.gifView.hidden = YES; - } -} -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h b/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h deleted file mode 100644 index d255807..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// MJRefreshBackNormalFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshBackStateFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter -@property (weak, nonatomic, readonly) UIImageView *arrowView; -@property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; - -/** 菊花的样式 */ -@property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m b/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m deleted file mode 100644 index 932af76..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m +++ /dev/null @@ -1,132 +0,0 @@ -// -// MJRefreshBackNormalFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshBackNormalFooter.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" - -@interface MJRefreshBackNormalFooter() -{ - __unsafe_unretained UIImageView *_arrowView; -} -@property (weak, nonatomic) UIActivityIndicatorView *loadingView; -@end - -@implementation MJRefreshBackNormalFooter -#pragma mark - 懒加载子控件 -- (UIImageView *)arrowView -{ - if (!_arrowView) { - UIImageView *arrowView = [[UIImageView alloc] initWithImage:[NSBundle mj_arrowImage]]; - [self addSubview:_arrowView = arrowView]; - } - return _arrowView; -} - - -- (UIActivityIndicatorView *)loadingView -{ - if (!_loadingView) { - UIActivityIndicatorView *loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:_activityIndicatorViewStyle]; - loadingView.hidesWhenStopped = YES; - [self addSubview:_loadingView = loadingView]; - } - return _loadingView; -} - -- (void)setActivityIndicatorViewStyle:(UIActivityIndicatorViewStyle)activityIndicatorViewStyle -{ - _activityIndicatorViewStyle = activityIndicatorViewStyle; - - [self.loadingView removeFromSuperview]; - self.loadingView = nil; - [self setNeedsLayout]; -} -#pragma mark - 重写父类的方法 -- (void)prepare -{ - [super prepare]; - -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 - if (@available(iOS 13.0, *)) { - _activityIndicatorViewStyle = UIActivityIndicatorViewStyleMedium; - return; - } -#endif - - _activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; -} - -- (void)placeSubviews -{ - [super placeSubviews]; - - // 箭头的中心点 - CGFloat arrowCenterX = self.mj_w * 0.5; - if (!self.stateLabel.hidden) { - arrowCenterX -= self.labelLeftInset + self.stateLabel.mj_textWidth * 0.5; - } - CGFloat arrowCenterY = self.mj_h * 0.5; - CGPoint arrowCenter = CGPointMake(arrowCenterX, arrowCenterY); - - // 箭头 - if (self.arrowView.constraints.count == 0) { - self.arrowView.mj_size = self.arrowView.image.size; - self.arrowView.center = arrowCenter; - } - - // 圈圈 - if (self.loadingView.constraints.count == 0) { - self.loadingView.center = arrowCenter; - } - - self.arrowView.tintColor = self.stateLabel.textColor; -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 根据状态做事情 - if (state == MJRefreshStateIdle) { - if (oldState == MJRefreshStateRefreshing) { - self.arrowView.transform = CGAffineTransformMakeRotation(0.000001 - M_PI); - [UIView animateWithDuration:self.slowAnimationDuration animations:^{ - self.loadingView.alpha = 0.0; - } completion:^(BOOL finished) { - // 防止动画结束后,状态已经不是MJRefreshStateIdle - if (self.state != MJRefreshStateIdle) return; - - self.loadingView.alpha = 1.0; - [self.loadingView stopAnimating]; - - self.arrowView.hidden = NO; - }]; - } else { - self.arrowView.hidden = NO; - [self.loadingView stopAnimating]; - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.arrowView.transform = CGAffineTransformMakeRotation(0.000001 - M_PI); - }]; - } - } else if (state == MJRefreshStatePulling) { - self.arrowView.hidden = NO; - [self.loadingView stopAnimating]; - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.arrowView.transform = CGAffineTransformIdentity; - }]; - } else if (state == MJRefreshStateRefreshing) { - self.arrowView.hidden = YES; - [self.loadingView startAnimating]; - } else if (state == MJRefreshStateNoMoreData) { - self.arrowView.hidden = YES; - [self.loadingView stopAnimating]; - } -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h b/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h deleted file mode 100644 index c6897f4..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// MJRefreshBackStateFooter.h -// MJRefresh -// -// Created by MJ Lee on 15/6/13. -// Copyright © 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshBackFooter.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshBackStateFooter : MJRefreshBackFooter -/** 文字距离圈圈、箭头的距离 */ -@property (assign, nonatomic) CGFloat labelLeftInset; -/** 显示刷新状态的label */ -@property (weak, nonatomic, readonly) UILabel *stateLabel; -/** 设置state状态下的文字 */ -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; - -/** 获取state状态下的title */ -- (NSString *)titleForState:(MJRefreshState)state; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m b/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m deleted file mode 100644 index 70f4024..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m +++ /dev/null @@ -1,93 +0,0 @@ -// -// MJRefreshBackStateFooter.m -// MJRefresh -// -// Created by MJ Lee on 15/6/13. -// Copyright © 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshBackStateFooter.h" -#import "NSBundle+MJRefresh.h" - -@interface MJRefreshBackStateFooter() -{ - /** 显示刷新状态的label */ - __unsafe_unretained UILabel *_stateLabel; -} -/** 所有状态对应的文字 */ -@property (strong, nonatomic) NSMutableDictionary *stateTitles; -@end - -@implementation MJRefreshBackStateFooter -#pragma mark - 懒加载 -- (NSMutableDictionary *)stateTitles -{ - if (!_stateTitles) { - self.stateTitles = [NSMutableDictionary dictionary]; - } - return _stateTitles; -} - -- (UILabel *)stateLabel -{ - if (!_stateLabel) { - [self addSubview:_stateLabel = [UILabel mj_label]]; - } - return _stateLabel; -} - -#pragma mark - 公共方法 -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state -{ - if (title == nil) return self; - self.stateTitles[@(state)] = title; - self.stateLabel.text = self.stateTitles[@(self.state)]; - return self; -} - -- (NSString *)titleForState:(MJRefreshState)state { - return self.stateTitles[@(state)]; -} - -- (void)textConfiguration { - // 初始化文字 - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterIdleText] forState:MJRefreshStateIdle]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterPullingText] forState:MJRefreshStatePulling]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterRefreshingText] forState:MJRefreshStateRefreshing]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshBackFooterNoMoreDataText] forState:MJRefreshStateNoMoreData]; -} - -#pragma mark - 重写父类的方法 -- (void)prepare -{ - [super prepare]; - - // 初始化间距 - self.labelLeftInset = MJRefreshLabelLeftInset; - [self textConfiguration]; -} - -- (void)i18nDidChange { - [self textConfiguration]; - - [super i18nDidChange]; -} - -- (void)placeSubviews -{ - [super placeSubviews]; - - if (self.stateLabel.constraints.count) return; - - // 状态标签 - self.stateLabel.frame = self.bounds; -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 设置状态文字 - self.stateLabel.text = self.stateTitles[@(state)]; -} -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h b/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h deleted file mode 100644 index afa4a13..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// MJRefreshGifHeader.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshStateHeader.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshGifHeader : MJRefreshStateHeader -@property (weak, nonatomic, readonly) UIImageView *gifView; - -/** 设置state状态下的动画图片images 动画持续时间duration*/ -- (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; -- (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.m b/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.m deleted file mode 100644 index 707e466..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.m +++ /dev/null @@ -1,135 +0,0 @@ -// -// MJRefreshGifHeader.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshGifHeader.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.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 - 公共方法 -- (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state { - if (images == nil) return self; - - 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; - } - return self; -} - -- (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state -{ - return [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_textWidth; - CGFloat timeWidth = 0.0; - if (!self.lastUpdatedTimeLabel.hidden) { - timeWidth = self.lastUpdatedTimeLabel.mj_textWidth; - } - 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 diff --git a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h b/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h deleted file mode 100644 index 2bfef39..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// MJRefreshNormalHeader.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshStateHeader.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshNormalHeader : MJRefreshStateHeader -@property (weak, nonatomic, readonly) UIImageView *arrowView; -@property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; - - -/** 菊花的样式 */ -@property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.m b/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.m deleted file mode 100644 index 84a66cb..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.m +++ /dev/null @@ -1,137 +0,0 @@ -// -// MJRefreshNormalHeader.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshNormalHeader.h" -#import "NSBundle+MJRefresh.h" -#import "UIScrollView+MJRefresh.h" -#import "UIView+MJExtension.h" - -@interface MJRefreshNormalHeader() -{ - __unsafe_unretained UIImageView *_arrowView; -} -@property (weak, nonatomic) UIActivityIndicatorView *loadingView; -@end - -@implementation MJRefreshNormalHeader -#pragma mark - 懒加载子控件 -- (UIImageView *)arrowView -{ - if (!_arrowView) { - UIImageView *arrowView = [[UIImageView alloc] initWithImage:[NSBundle mj_arrowImage]]; - [self addSubview:_arrowView = arrowView]; - } - return _arrowView; -} - -- (UIActivityIndicatorView *)loadingView -{ - if (!_loadingView) { - UIActivityIndicatorView *loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:_activityIndicatorViewStyle]; - loadingView.hidesWhenStopped = YES; - [self addSubview:_loadingView = loadingView]; - } - return _loadingView; -} - -#pragma mark - 公共方法 -- (void)setActivityIndicatorViewStyle:(UIActivityIndicatorViewStyle)activityIndicatorViewStyle -{ - _activityIndicatorViewStyle = activityIndicatorViewStyle; - - [self.loadingView removeFromSuperview]; - self.loadingView = nil; - [self setNeedsLayout]; -} - -#pragma mark - 重写父类的方法 -- (void)prepare -{ - [super prepare]; - -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 - if (@available(iOS 13.0, *)) { - _activityIndicatorViewStyle = UIActivityIndicatorViewStyleMedium; - return; - } -#endif - - _activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; -} - -- (void)placeSubviews -{ - [super placeSubviews]; - - // 箭头的中心点 - CGFloat arrowCenterX = self.mj_w * 0.5; - if (!self.stateLabel.hidden) { - CGFloat stateWidth = self.stateLabel.mj_textWidth; - CGFloat timeWidth = 0.0; - if (!self.lastUpdatedTimeLabel.hidden) { - timeWidth = self.lastUpdatedTimeLabel.mj_textWidth; - } - CGFloat textWidth = MAX(stateWidth, timeWidth); - arrowCenterX -= textWidth / 2 + self.labelLeftInset; - } - CGFloat arrowCenterY = self.mj_h * 0.5; - CGPoint arrowCenter = CGPointMake(arrowCenterX, arrowCenterY); - - // 箭头 - if (self.arrowView.constraints.count == 0) { - self.arrowView.mj_size = self.arrowView.image.size; - self.arrowView.center = arrowCenter; - } - - // 圈圈 - if (self.loadingView.constraints.count == 0) { - self.loadingView.center = arrowCenter; - } - - self.arrowView.tintColor = self.stateLabel.textColor; -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 根据状态做事情 - if (state == MJRefreshStateIdle) { - if (oldState == MJRefreshStateRefreshing) { - self.arrowView.transform = CGAffineTransformIdentity; - - [UIView animateWithDuration:self.slowAnimationDuration animations:^{ - self.loadingView.alpha = 0.0; - } completion:^(BOOL finished) { - // 如果执行完动画发现不是idle状态,就直接返回,进入其他状态 - if (self.state != MJRefreshStateIdle) return; - - self.loadingView.alpha = 1.0; - [self.loadingView stopAnimating]; - self.arrowView.hidden = NO; - }]; - } else { - [self.loadingView stopAnimating]; - self.arrowView.hidden = NO; - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.arrowView.transform = CGAffineTransformIdentity; - }]; - } - } else if (state == MJRefreshStatePulling) { - [self.loadingView stopAnimating]; - self.arrowView.hidden = NO; - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.arrowView.transform = CGAffineTransformMakeRotation(0.000001 - M_PI); - }]; - } else if (state == MJRefreshStateRefreshing) { - self.loadingView.alpha = 1.0; // 防止refreshing -> idle的动画完毕动作没有被执行 - [self.loadingView startAnimating]; - self.arrowView.hidden = YES; - } -} -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h b/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h deleted file mode 100644 index 8e1d108..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// MJRefreshStateHeader.h -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshHeader.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshStateHeader : MJRefreshHeader -#pragma mark - 刷新时间相关 -/** 利用这个block来决定显示的更新时间文字 */ -@property (copy, nonatomic, nullable) NSString *(^lastUpdatedTimeText)(NSDate * _Nullable lastUpdatedTime); -/** 显示上一次刷新时间的label */ -@property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; - -#pragma mark - 状态相关 -/** 文字距离圈圈、箭头的距离 */ -@property (assign, nonatomic) CGFloat labelLeftInset; -/** 显示刷新状态的label */ -@property (weak, nonatomic, readonly) UILabel *stateLabel; -/** 设置state状态下的文字 */ -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; -@end - -@interface MJRefreshStateHeader (ChainingGrammar) - -- (instancetype)modifyLastUpdatedTimeText:(NSString * (^)(NSDate * _Nullable lastUpdatedTime))handler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.m b/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.m deleted file mode 100644 index 62d1ddc..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.m +++ /dev/null @@ -1,191 +0,0 @@ -// -// MJRefreshStateHeader.m -// MJRefresh -// -// Created by MJ Lee on 15/4/24. -// Copyright (c) 2015年 小码哥. All rights reserved. -// - -#import "MJRefreshStateHeader.h" -#import "MJRefreshConst.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" -#import "UIScrollView+MJExtension.h" - -@interface MJRefreshStateHeader() -{ - /** 显示上一次刷新时间的label */ - __unsafe_unretained UILabel *_lastUpdatedTimeLabel; - /** 显示刷新状态的label */ - __unsafe_unretained UILabel *_stateLabel; -} -/** 所有状态对应的文字 */ -@property (strong, nonatomic) NSMutableDictionary *stateTitles; -@end - -@implementation MJRefreshStateHeader -#pragma mark - 懒加载 -- (NSMutableDictionary *)stateTitles -{ - if (!_stateTitles) { - self.stateTitles = [NSMutableDictionary dictionary]; - } - return _stateTitles; -} - -- (UILabel *)stateLabel -{ - if (!_stateLabel) { - [self addSubview:_stateLabel = [UILabel mj_label]]; - } - return _stateLabel; -} - -- (UILabel *)lastUpdatedTimeLabel -{ - if (!_lastUpdatedTimeLabel) { - [self addSubview:_lastUpdatedTimeLabel = [UILabel mj_label]]; - } - return _lastUpdatedTimeLabel; -} - -- (void)setLastUpdatedTimeText:(NSString * _Nonnull (^)(NSDate * _Nullable))lastUpdatedTimeText{ - _lastUpdatedTimeText = lastUpdatedTimeText; - // 重新设置key(重新显示时间) - self.lastUpdatedTimeKey = self.lastUpdatedTimeKey; -} - -#pragma mark - 公共方法 -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state -{ - if (title == nil) return self; - self.stateTitles[@(state)] = title; - self.stateLabel.text = self.stateTitles[@(self.state)]; - return self; -} - -#pragma mark key的处理 -- (void)setLastUpdatedTimeKey:(NSString *)lastUpdatedTimeKey -{ - [super setLastUpdatedTimeKey:lastUpdatedTimeKey]; - - // 如果label隐藏了,就不用再处理 - if (self.lastUpdatedTimeLabel.hidden) return; - - NSDate *lastUpdatedTime = [[NSUserDefaults standardUserDefaults] objectForKey:lastUpdatedTimeKey]; - - // 如果有block - if (self.lastUpdatedTimeText) { - self.lastUpdatedTimeLabel.text = self.lastUpdatedTimeText(lastUpdatedTime); - return; - } - - if (lastUpdatedTime) { - // 1.获得年月日 - NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian]; - NSUInteger unitFlags = NSCalendarUnitYear| NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute; - NSDateComponents *cmp1 = [calendar components:unitFlags fromDate:lastUpdatedTime]; - NSDateComponents *cmp2 = [calendar components:unitFlags fromDate:[NSDate date]]; - - // 2.格式化日期 - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - BOOL isToday = NO; - if ([cmp1 day] == [cmp2 day]) { // 今天 - formatter.dateFormat = @" HH:mm"; - isToday = YES; - } else if ([cmp1 year] == [cmp2 year]) { // 今年 - formatter.dateFormat = @"MM-dd HH:mm"; - } else { - formatter.dateFormat = @"yyyy-MM-dd HH:mm"; - } - NSString *time = [formatter stringFromDate:lastUpdatedTime]; - - // 3.显示日期 - self.lastUpdatedTimeLabel.text = [NSString stringWithFormat:@"%@%@%@", - [NSBundle mj_localizedStringForKey:MJRefreshHeaderLastTimeText], - isToday ? [NSBundle mj_localizedStringForKey:MJRefreshHeaderDateTodayText] : @"", - time]; - } else { - self.lastUpdatedTimeLabel.text = [NSString stringWithFormat:@"%@%@", - [NSBundle mj_localizedStringForKey:MJRefreshHeaderLastTimeText], - [NSBundle mj_localizedStringForKey:MJRefreshHeaderNoneLastDateText]]; - } -} - - -- (void)textConfiguration { - // 初始化文字 - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshHeaderIdleText] forState:MJRefreshStateIdle]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshHeaderPullingText] forState:MJRefreshStatePulling]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshHeaderRefreshingText] forState:MJRefreshStateRefreshing]; - self.lastUpdatedTimeKey = MJRefreshHeaderLastUpdatedTimeKey; -} - -#pragma mark - 覆盖父类的方法 -- (void)prepare -{ - [super prepare]; - - // 初始化间距 - self.labelLeftInset = MJRefreshLabelLeftInset; - [self textConfiguration]; -} - -- (void)i18nDidChange { - [self textConfiguration]; - - [super i18nDidChange]; -} - -- (void)placeSubviews -{ - [super placeSubviews]; - - if (self.stateLabel.hidden) return; - - BOOL noConstrainsOnStatusLabel = self.stateLabel.constraints.count == 0; - - if (self.lastUpdatedTimeLabel.hidden) { - // 状态 - if (noConstrainsOnStatusLabel) self.stateLabel.frame = self.bounds; - } else { - CGFloat stateLabelH = self.mj_h * 0.5; - // 状态 - if (noConstrainsOnStatusLabel) { - self.stateLabel.mj_x = 0; - self.stateLabel.mj_y = 0; - self.stateLabel.mj_w = self.mj_w; - self.stateLabel.mj_h = stateLabelH; - } - - // 更新时间 - if (self.lastUpdatedTimeLabel.constraints.count == 0) { - self.lastUpdatedTimeLabel.mj_x = 0; - self.lastUpdatedTimeLabel.mj_y = stateLabelH; - self.lastUpdatedTimeLabel.mj_w = self.mj_w; - self.lastUpdatedTimeLabel.mj_h = self.mj_h - self.lastUpdatedTimeLabel.mj_y; - } - } -} - -- (void)setState:(MJRefreshState)state -{ - MJRefreshCheckState - - // 设置状态文字 - self.stateLabel.text = self.stateTitles[@(state)]; - - // 重新设置key(重新显示时间) - self.lastUpdatedTimeKey = self.lastUpdatedTimeKey; -} -@end - -#pragma mark - <<< 为 Swift 扩展链式语法 >>> - -@implementation MJRefreshStateHeader (ChainingGrammar) - -- (instancetype)modifyLastUpdatedTimeText:(NSString * _Nonnull (^)(NSDate * _Nullable))handler { - self.lastUpdatedTimeText = handler; - return self; -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h b/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h deleted file mode 100644 index 97385d7..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// MJRefreshNormalTrailer.h -// MJRefresh -// -// Created by kinarobin on 2020/5/3. -// Copyright © 2020 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshStateTrailer.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshNormalTrailer : MJRefreshStateTrailer - -@property (weak, nonatomic, readonly) UIImageView *arrowView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m b/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m deleted file mode 100644 index 4b269f2..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m +++ /dev/null @@ -1,80 +0,0 @@ -// -// MJRefreshNormalTrailer.m -// MJRefresh -// -// Created by kinarobin on 2020/5/3. -// Copyright © 2020 小码哥. All rights reserved. -// - -#import "MJRefreshNormalTrailer.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" - -@interface MJRefreshNormalTrailer() { - __unsafe_unretained UIImageView *_arrowView; -} -@end - -@implementation MJRefreshNormalTrailer -#pragma mark - 懒加载子控件 -- (UIImageView *)arrowView { - if (!_arrowView) { - UIImageView *arrowView = [[UIImageView alloc] initWithImage:[NSBundle mj_trailArrowImage]]; - [self addSubview:_arrowView = arrowView]; - } - return _arrowView; -} - -- (void)placeSubviews { - [super placeSubviews]; - - CGSize arrowSize = self.arrowView.image.size; - // 箭头的中心点 - CGPoint selfCenter = CGPointMake(self.mj_w * 0.5, self.mj_h * 0.5); - CGPoint arrowCenter = CGPointMake(arrowSize.width * 0.5 + 5, self.mj_h * 0.5); - BOOL stateHidden = self.stateLabel.isHidden; - - if (self.arrowView.constraints.count == 0) { - self.arrowView.mj_size = self.arrowView.image.size; - self.arrowView.center = stateHidden ? selfCenter : arrowCenter ; - } - self.arrowView.tintColor = self.stateLabel.textColor; - - if (stateHidden) return; - - BOOL noConstrainsOnStatusLabel = self.stateLabel.constraints.count == 0; - CGFloat stateLabelW = ceil(self.stateLabel.font.pointSize); - // 状态 - if (noConstrainsOnStatusLabel) { - BOOL arrowHidden = self.arrowView.isHidden; - CGFloat stateCenterX = (self.mj_w + arrowSize.width) * 0.5; - self.stateLabel.center = arrowHidden ? selfCenter : CGPointMake(stateCenterX, self.mj_h * 0.5); - self.stateLabel.mj_size = CGSizeMake(stateLabelW, self.mj_h) ; - } -} - -- (void)setState:(MJRefreshState)state { - MJRefreshCheckState - // 根据状态做事情 - if (state == MJRefreshStateIdle) { - if (oldState == MJRefreshStateRefreshing) { - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.arrowView.transform = CGAffineTransformMakeRotation(M_PI); - } completion:^(BOOL finished) { - self.arrowView.transform = CGAffineTransformIdentity; - }]; - } else { - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.arrowView.transform = CGAffineTransformIdentity; - }]; - } - } else if (state == MJRefreshStatePulling) { - [UIView animateWithDuration:self.fastAnimationDuration animations:^{ - self.arrowView.transform = CGAffineTransformMakeRotation(M_PI); - }]; - } -} - - - -@end diff --git a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h b/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h deleted file mode 100644 index 92ac203..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// MJRefreshStateTrailer.h -// MJRefresh -// -// Created by kinarobin on 2020/5/3. -// Copyright © 2020 小码哥. All rights reserved. -// - -#if __has_include() -#import -#else -#import "MJRefreshTrailer.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - - -@interface MJRefreshStateTrailer : MJRefreshTrailer - -#pragma mark - 状态相关 -/** 显示刷新状态的label */ -@property (weak, nonatomic, readonly) UILabel *stateLabel; -/** 设置state状态下的文字 */ -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m b/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m deleted file mode 100644 index 3ce0ba6..0000000 --- a/Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m +++ /dev/null @@ -1,87 +0,0 @@ -// -// MJRefreshStateTrailer.m -// MJRefresh -// -// Created by kinarobin on 2020/5/3. -// Copyright © 2020 小码哥. All rights reserved. -// - -#import "MJRefreshStateTrailer.h" -#import "NSBundle+MJRefresh.h" -#import "UIView+MJExtension.h" - -@interface MJRefreshStateTrailer() { - /** 显示刷新状态的label */ - __unsafe_unretained UILabel *_stateLabel; -} -/** 所有状态对应的文字 */ -@property (strong, nonatomic) NSMutableDictionary *stateTitles; -@end - -@implementation MJRefreshStateTrailer -#pragma mark - 懒加载 -- (NSMutableDictionary *)stateTitles { - if (!_stateTitles) { - self.stateTitles = [NSMutableDictionary dictionary]; - } - return _stateTitles; -} - -- (UILabel *)stateLabel { - if (!_stateLabel) { - UILabel *stateLabel = [UILabel mj_label]; - stateLabel.numberOfLines = 0; - [self addSubview:_stateLabel = stateLabel]; - } - return _stateLabel; -} - -#pragma mark - 公共方法 -- (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state { - if (title == nil) return self; - self.stateTitles[@(state)] = title; - self.stateLabel.text = self.stateTitles[@(self.state)]; - return self; -} - -- (void)textConfiguration { - // 初始化文字 - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshTrailerIdleText] forState:MJRefreshStateIdle]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshTrailerPullingText] forState:MJRefreshStatePulling]; - [self setTitle:[NSBundle mj_localizedStringForKey:MJRefreshTrailerPullingText] forState:MJRefreshStateRefreshing]; -} - -#pragma mark - 覆盖父类的方法 -- (void)prepare { - [super prepare]; - - [self textConfiguration]; -} - -- (void)i18nDidChange { - [self textConfiguration]; - - [super i18nDidChange]; -} - -- (void)setState:(MJRefreshState)state { - MJRefreshCheckState - // 设置状态文字 - self.stateLabel.text = self.stateTitles[@(state)]; -} - -- (void)placeSubviews { - [super placeSubviews]; - - if (self.stateLabel.hidden) return; - - BOOL noConstrainsOnStatusLabel = self.stateLabel.constraints.count == 0; - CGFloat stateLabelW = ceil(self.stateLabel.font.pointSize); - // 状态 - if (noConstrainsOnStatusLabel) { - self.stateLabel.center = CGPointMake(self.mj_w * 0.5, self.mj_h * 0.5); - self.stateLabel.mj_size = CGSizeMake(stateLabelW, self.mj_h) ; - } -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png deleted file mode 100755 index b1078de..0000000 Binary files a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png and /dev/null differ diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings deleted file mode 100644 index bf56786..0000000 Binary files a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings and /dev/null differ diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ko.lproj/Localizable.strings b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ko.lproj/Localizable.strings deleted file mode 100644 index ac25579..0000000 --- a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ko.lproj/Localizable.strings +++ /dev/null @@ -1,16 +0,0 @@ -"MJRefreshHeaderIdleText" = "아래로 당겨 새로고침"; -"MJRefreshHeaderPullingText" = "놓으면 새로고침"; -"MJRefreshHeaderRefreshingText" = "로딩중..."; - -"MJRefreshAutoFooterIdleText" = "탭 또는 위로 당겨 로드함"; -"MJRefreshAutoFooterRefreshingText" = "로딩중..."; -"MJRefreshAutoFooterNoMoreDataText" = "더이상 데이터 없음"; - -"MJRefreshBackFooterIdleText" = "위로 당겨 더 로드 가능"; -"MJRefreshBackFooterPullingText" = "놓으면 더 로드됨."; -"MJRefreshBackFooterRefreshingText" = "로딩중..."; -"MJRefreshBackFooterNoMoreDataText" = "더이상 데이터 없음"; - -"MJRefreshHeaderLastTimeText" = "마지막 업데이트: "; -"MJRefreshHeaderDateTodayText" = "오늘"; -"MJRefreshHeaderNoneLastDateText" = "기록 없음"; diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings deleted file mode 100644 index 7890e7b..0000000 Binary files a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings and /dev/null differ diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/trail_arrow@2x.png b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/trail_arrow@2x.png deleted file mode 100644 index a45f933..0000000 Binary files a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/trail_arrow@2x.png and /dev/null differ diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings deleted file mode 100644 index 3557940..0000000 Binary files a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings and /dev/null differ diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index 1066e3d..0000000 Binary files a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings and /dev/null differ diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings b/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings deleted file mode 100644 index 17417b5..0000000 --- a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings +++ /dev/null @@ -1,19 +0,0 @@ -"MJRefreshHeaderIdleText" = "下拉可以刷新"; -"MJRefreshHeaderPullingText" = "鬆開立即刷新"; -"MJRefreshHeaderRefreshingText" = "正在刷新數據中..."; - -"MJRefreshTrailerIdleText" = "滑動查看圖文詳情"; -"MJRefreshTrailerPullingText" = "釋放查看圖文詳情"; - -"MJRefreshAutoFooterIdleText" = "點擊或上拉加載更多"; -"MJRefreshAutoFooterRefreshingText" = "正在加載更多的數據..."; -"MJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢"; - -"MJRefreshBackFooterIdleText" = "上拉可以加載更多"; -"MJRefreshBackFooterPullingText" = "鬆開立即加載更多"; -"MJRefreshBackFooterRefreshingText" = "正在加載更多的數據..."; -"MJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢"; - -"MJRefreshHeaderLastTimeText" = "最後更新:"; -"MJRefreshHeaderDateTodayText" = "今天"; -"MJRefreshHeaderNoneLastDateText" = "無記錄"; diff --git a/Pods/MJRefresh/MJRefresh/MJRefresh.h b/Pods/MJRefresh/MJRefresh/MJRefresh.h deleted file mode 100644 index d878212..0000000 --- a/Pods/MJRefresh/MJRefresh/MJRefresh.h +++ /dev/null @@ -1,42 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh - -#import - -#if __has_include() -FOUNDATION_EXPORT double MJRefreshVersionNumber; -FOUNDATION_EXPORT const unsigned char MJRefreshVersionString[]; - -#import -#import -#import - -#import -#import - -#import -#import -#import -#import - -#import -#import -#import -#import -#else -#import "UIScrollView+MJRefresh.h" -#import "UIScrollView+MJExtension.h" -#import "UIView+MJExtension.h" - -#import "MJRefreshNormalHeader.h" -#import "MJRefreshGifHeader.h" - -#import "MJRefreshBackNormalFooter.h" -#import "MJRefreshBackGifFooter.h" -#import "MJRefreshAutoNormalFooter.h" -#import "MJRefreshAutoGifFooter.h" - -#import "MJRefreshNormalTrailer.h" -#import "MJRefreshConfig.h" -#import "NSBundle+MJRefresh.h" -#import "MJRefreshConst.h" -#endif diff --git a/Pods/MJRefresh/MJRefresh/MJRefreshConfig.h b/Pods/MJRefresh/MJRefresh/MJRefreshConfig.h deleted file mode 100644 index b2c808f..0000000 --- a/Pods/MJRefresh/MJRefresh/MJRefreshConfig.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// MJRefreshConfig.h -// -// Created by Frank on 2018/11/27. -// Copyright © 2018 小码哥. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface MJRefreshConfig : NSObject - -/** 默认使用的语言版本, 默认为 nil. 将随系统的语言自动改变 */ -@property (copy, nonatomic, nullable) NSString *languageCode; - -/** 默认使用的语言资源文件名, 默认为 nil, 即默认的 Localizable.strings. - - - Attention: 文件名不包含后缀.strings - */ -@property (copy, nonatomic, nullable) NSString *i18nFilename; -/** i18n 多语言资源加载自定义 Bundle. - - - Attention: 默认为 nil 采用内置逻辑. 这里设置后将忽略内置逻辑的多语言模式, 采用自定义的多语言 bundle - */ -@property (nonatomic, nullable) NSBundle *i18nBundle; - -/** Singleton Config instance */ -@property (class, nonatomic, readonly) MJRefreshConfig *defaultConfig; - -- (instancetype)init NS_UNAVAILABLE; -+ (instancetype)new NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/MJRefreshConfig.m b/Pods/MJRefresh/MJRefresh/MJRefreshConfig.m deleted file mode 100644 index 680b95a..0000000 --- a/Pods/MJRefresh/MJRefresh/MJRefreshConfig.m +++ /dev/null @@ -1,42 +0,0 @@ -// -// MJRefreshConfig.m -// -// Created by Frank on 2018/11/27. -// Copyright © 2018 小码哥. All rights reserved. -// - -#import "MJRefreshConfig.h" -#import "MJRefreshConst.h" -#import "NSBundle+MJRefresh.h" - -@interface MJRefreshConfig (Bundle) - -+ (void)resetLanguageResourceCache; - -@end - -@implementation MJRefreshConfig - -static MJRefreshConfig *mj_RefreshConfig = nil; - -+ (instancetype)defaultConfig { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - mj_RefreshConfig = [[self alloc] init]; - }); - return mj_RefreshConfig; -} - -- (void)setLanguageCode:(NSString *)languageCode { - if ([languageCode isEqualToString:_languageCode]) { - return; - } - - _languageCode = languageCode; - // 重置语言资源 - [MJRefreshConfig resetLanguageResourceCache]; - [NSNotificationCenter.defaultCenter - postNotificationName:MJRefreshDidChangeLanguageNotification object:self]; -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/MJRefreshConst.h b/Pods/MJRefresh/MJRefresh/MJRefreshConst.h deleted file mode 100644 index 6881115..0000000 --- a/Pods/MJRefresh/MJRefresh/MJRefreshConst.h +++ /dev/null @@ -1,115 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -#import -#import -#import - -// 弱引用 -#define MJWeakSelf __weak typeof(self) weakSelf = self; - -// 日志输出 -#ifdef DEBUG -#define MJRefreshLog(...) NSLog(__VA_ARGS__) -#else -#define MJRefreshLog(...) -#endif - -// 过期提醒 -#define MJRefreshDeprecated(DESCRIPTION) __attribute__((deprecated(DESCRIPTION))) - -// 运行时objc_msgSend -#define MJRefreshMsgSend(...) ((void (*)(void *, SEL, UIView *))objc_msgSend)(__VA_ARGS__) -#define MJRefreshMsgTarget(target) (__bridge void *)(target) - -// RGB颜色 -#define MJRefreshColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0] - -// 文字颜色 -#define MJRefreshLabelTextColor MJRefreshColor(90, 90, 90) - -// 字体大小 -#define MJRefreshLabelFont [UIFont boldSystemFontOfSize:14] - -// 常量 -UIKIT_EXTERN const CGFloat MJRefreshLabelLeftInset; -UIKIT_EXTERN const CGFloat MJRefreshHeaderHeight; -UIKIT_EXTERN const CGFloat MJRefreshFooterHeight; -UIKIT_EXTERN const CGFloat MJRefreshTrailWidth; -UIKIT_EXTERN const CGFloat MJRefreshFastAnimationDuration; -UIKIT_EXTERN const CGFloat MJRefreshSlowAnimationDuration; - - -UIKIT_EXTERN NSString *const MJRefreshKeyPathContentOffset; -UIKIT_EXTERN NSString *const MJRefreshKeyPathContentSize; -UIKIT_EXTERN NSString *const MJRefreshKeyPathContentInset; -UIKIT_EXTERN NSString *const MJRefreshKeyPathPanState; - -UIKIT_EXTERN NSString *const MJRefreshHeaderLastUpdatedTimeKey; - -UIKIT_EXTERN NSString *const MJRefreshHeaderIdleText; -UIKIT_EXTERN NSString *const MJRefreshHeaderPullingText; -UIKIT_EXTERN NSString *const MJRefreshHeaderRefreshingText; - -UIKIT_EXTERN NSString *const MJRefreshTrailerIdleText; -UIKIT_EXTERN NSString *const MJRefreshTrailerPullingText; - -UIKIT_EXTERN NSString *const MJRefreshAutoFooterIdleText; -UIKIT_EXTERN NSString *const MJRefreshAutoFooterRefreshingText; -UIKIT_EXTERN NSString *const MJRefreshAutoFooterNoMoreDataText; - -UIKIT_EXTERN NSString *const MJRefreshBackFooterIdleText; -UIKIT_EXTERN NSString *const MJRefreshBackFooterPullingText; -UIKIT_EXTERN NSString *const MJRefreshBackFooterRefreshingText; -UIKIT_EXTERN NSString *const MJRefreshBackFooterNoMoreDataText; - -UIKIT_EXTERN NSString *const MJRefreshHeaderLastTimeText; -UIKIT_EXTERN NSString *const MJRefreshHeaderDateTodayText; -UIKIT_EXTERN NSString *const MJRefreshHeaderNoneLastDateText; - -UIKIT_EXTERN NSString *const MJRefreshDidChangeLanguageNotification; - -// 状态检查 -#define MJRefreshCheckState \ -MJRefreshState oldState = self.state; \ -if (state == oldState) return; \ -[super setState:state]; - -// 异步主线程执行,不强持有Self -#define MJRefreshDispatchAsyncOnMainQueue(x) \ -__weak typeof(self) weakSelf = self; \ -dispatch_async(dispatch_get_main_queue(), ^{ \ -typeof(weakSelf) self = weakSelf; \ -{x} \ -}); - -/// 替换方法实现 -/// @param _fromClass 源类 -/// @param _originSelector 源类的 Selector -/// @param _toClass 目标类 -/// @param _newSelector 目标类的 Selector -CG_INLINE BOOL MJRefreshExchangeImplementations( - Class _fromClass, SEL _originSelector, - Class _toClass, SEL _newSelector) { - if (!_fromClass || !_toClass) { - return NO; - } - - Method oriMethod = class_getInstanceMethod(_fromClass, _originSelector); - Method newMethod = class_getInstanceMethod(_toClass, _newSelector); - if (!newMethod) { - return NO; - } - - BOOL isAddedMethod = class_addMethod(_fromClass, _originSelector, - method_getImplementation(newMethod), - method_getTypeEncoding(newMethod)); - if (isAddedMethod) { - // 如果 class_addMethod 成功了,说明之前 fromClass 里并不存在 originSelector,所以要用一个空的方法代替它,以避免 class_replaceMethod 后,后续 toClass 的这个方法被调用时可能会 crash - IMP emptyIMP = imp_implementationWithBlock(^(id selfObject) {}); - IMP oriMethodIMP = method_getImplementation(oriMethod) ?: emptyIMP; - const char *oriMethodTypeEncoding = method_getTypeEncoding(oriMethod) ?: "v@:"; - class_replaceMethod(_toClass, _newSelector, oriMethodIMP, oriMethodTypeEncoding); - } else { - method_exchangeImplementations(oriMethod, newMethod); - } - return YES; -} diff --git a/Pods/MJRefresh/MJRefresh/MJRefreshConst.m b/Pods/MJRefresh/MJRefresh/MJRefreshConst.m deleted file mode 100644 index 704d4c7..0000000 --- a/Pods/MJRefresh/MJRefresh/MJRefreshConst.m +++ /dev/null @@ -1,39 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -#import - -const CGFloat MJRefreshLabelLeftInset = 25; -const CGFloat MJRefreshHeaderHeight = 54.0; -const CGFloat MJRefreshFooterHeight = 44.0; -const CGFloat MJRefreshTrailWidth = 60.0; -const CGFloat MJRefreshFastAnimationDuration = 0.25; -const CGFloat MJRefreshSlowAnimationDuration = 0.4; - - -NSString *const MJRefreshKeyPathContentOffset = @"contentOffset"; -NSString *const MJRefreshKeyPathContentInset = @"contentInset"; -NSString *const MJRefreshKeyPathContentSize = @"contentSize"; -NSString *const MJRefreshKeyPathPanState = @"state"; - -NSString *const MJRefreshHeaderLastUpdatedTimeKey = @"MJRefreshHeaderLastUpdatedTimeKey"; - -NSString *const MJRefreshHeaderIdleText = @"MJRefreshHeaderIdleText"; -NSString *const MJRefreshHeaderPullingText = @"MJRefreshHeaderPullingText"; -NSString *const MJRefreshHeaderRefreshingText = @"MJRefreshHeaderRefreshingText"; - -NSString *const MJRefreshTrailerIdleText = @"MJRefreshTrailerIdleText"; -NSString *const MJRefreshTrailerPullingText = @"MJRefreshTrailerPullingText"; - -NSString *const MJRefreshAutoFooterIdleText = @"MJRefreshAutoFooterIdleText"; -NSString *const MJRefreshAutoFooterRefreshingText = @"MJRefreshAutoFooterRefreshingText"; -NSString *const MJRefreshAutoFooterNoMoreDataText = @"MJRefreshAutoFooterNoMoreDataText"; - -NSString *const MJRefreshBackFooterIdleText = @"MJRefreshBackFooterIdleText"; -NSString *const MJRefreshBackFooterPullingText = @"MJRefreshBackFooterPullingText"; -NSString *const MJRefreshBackFooterRefreshingText = @"MJRefreshBackFooterRefreshingText"; -NSString *const MJRefreshBackFooterNoMoreDataText = @"MJRefreshBackFooterNoMoreDataText"; - -NSString *const MJRefreshHeaderLastTimeText = @"MJRefreshHeaderLastTimeText"; -NSString *const MJRefreshHeaderDateTodayText = @"MJRefreshHeaderDateTodayText"; -NSString *const MJRefreshHeaderNoneLastDateText = @"MJRefreshHeaderNoneLastDateText"; - -NSString *const MJRefreshDidChangeLanguageNotification = @"MJRefreshDidChangeLanguageNotification"; diff --git a/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h b/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h deleted file mode 100644 index a1f56f4..0000000 --- a/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// NSBundle+MJRefresh.h -// MJRefresh -// -// Created by MJ Lee on 16/6/13. -// Copyright © 2016年 小码哥. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface NSBundle (MJRefresh) -+ (instancetype)mj_refreshBundle; -+ (UIImage *)mj_arrowImage; -+ (UIImage *)mj_trailArrowImage; -+ (NSString *)mj_localizedStringForKey:(NSString *)key value:(nullable NSString *)value; -+ (NSString *)mj_localizedStringForKey:(NSString *)key; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.m b/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.m deleted file mode 100644 index c19cbe8..0000000 --- a/Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.m +++ /dev/null @@ -1,116 +0,0 @@ -// -// NSBundle+MJRefresh.m -// MJRefresh -// -// Created by MJ Lee on 16/6/13. -// Copyright © 2016年 小码哥. All rights reserved. -// - -#import "NSBundle+MJRefresh.h" -#import "MJRefreshComponent.h" -#import "MJRefreshConfig.h" - -static NSBundle *mj_defaultI18nBundle = nil; -static NSBundle *mj_systemI18nBundle = nil; - -@implementation NSBundle (MJRefresh) -+ (instancetype)mj_refreshBundle -{ - static NSBundle *refreshBundle = nil; - if (refreshBundle == nil) { -#ifdef SWIFT_PACKAGE - NSBundle *containnerBundle = SWIFTPM_MODULE_BUNDLE; -#else - NSBundle *containnerBundle = [NSBundle bundleForClass:[MJRefreshComponent class]]; -#endif - refreshBundle = [NSBundle bundleWithPath:[containnerBundle pathForResource:@"MJRefresh" ofType:@"bundle"]]; - } - return refreshBundle; -} - -+ (UIImage *)mj_arrowImage -{ - static UIImage *arrowImage = nil; - if (arrowImage == nil) { - arrowImage = [[UIImage imageWithContentsOfFile:[[self mj_refreshBundle] pathForResource:@"arrow@2x" ofType:@"png"]] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - } - return arrowImage; -} - -+ (UIImage *)mj_trailArrowImage { - static UIImage *arrowImage = nil; - if (arrowImage == nil) { - arrowImage = [[UIImage imageWithContentsOfFile:[[self mj_refreshBundle] pathForResource:@"trail_arrow@2x" ofType:@"png"]] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - } - return arrowImage; -} - -+ (NSString *)mj_localizedStringForKey:(NSString *)key -{ - return [self mj_localizedStringForKey:key value:nil]; -} - -+ (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value -{ - NSString *table = MJRefreshConfig.defaultConfig.i18nFilename; - - // 如果没有缓存, 则走初始化逻辑 - if (mj_defaultI18nBundle == nil) { - NSString *language = MJRefreshConfig.defaultConfig.languageCode; - // 如果配置中没有配置语言 - if (!language) { - language = [NSLocale preferredLanguages].firstObject; - } - NSBundle *bundle = MJRefreshConfig.defaultConfig.i18nBundle; - // 首先优先使用公共配置中的 i18nBundle, 如果为空则使用 mainBundle - bundle = bundle ? bundle : NSBundle.mainBundle; - // 按语言选取语言包 - NSString *i18nFolderPath = [bundle pathForResource:language ofType:@"lproj"]; - mj_defaultI18nBundle = [NSBundle bundleWithPath:i18nFolderPath]; - // 检查语言包, 如果没有查找到, 则默认使用 mainBundle - mj_defaultI18nBundle = mj_defaultI18nBundle ? mj_defaultI18nBundle : NSBundle.mainBundle; - - // 获取 MJRefresh 自有的语言包 - if (mj_systemI18nBundle == nil) { - mj_systemI18nBundle = [self mj_defaultI18nBundleWithLanguage:language]; - } - } - // 首先在 MJRefresh 内置语言文件中寻找 - value = [mj_systemI18nBundle localizedStringForKey:key value:value table:nil]; - // 然后在 MainBundle 对应语言文件中寻找 - value = [mj_defaultI18nBundle localizedStringForKey:key value:value table:table]; - return value; -} - -+ (NSBundle *)mj_defaultI18nBundleWithLanguage:(NSString *)language { - if ([language hasPrefix:@"en"]) { - language = @"en"; - } else if ([language hasPrefix:@"zh"]) { - if ([language rangeOfString:@"Hans"].location != NSNotFound) { - language = @"zh-Hans"; // 简体中文 - } else { // zh-Hant\zh-HK\zh-TW - language = @"zh-Hant"; // 繁體中文 - } - } else if ([language hasPrefix:@"ko"]) { - language = @"ko"; - } else if ([language hasPrefix:@"ru"]) { - language = @"ru"; - } else if ([language hasPrefix:@"uk"]) { - language = @"uk"; - } else { - language = @"en"; - } - - // 从MJRefresh.bundle中查找资源 - return [NSBundle bundleWithPath:[[NSBundle mj_refreshBundle] pathForResource:language ofType:@"lproj"]]; -} -@end - -@implementation MJRefreshConfig (Bundle) - -+ (void)resetLanguageResourceCache { - mj_defaultI18nBundle = nil; - mj_systemI18nBundle = nil; -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/PrivacyInfo.xcprivacy b/Pods/MJRefresh/MJRefresh/PrivacyInfo.xcprivacy deleted file mode 100644 index 2d55cfe..0000000 --- a/Pods/MJRefresh/MJRefresh/PrivacyInfo.xcprivacy +++ /dev/null @@ -1,23 +0,0 @@ - - - - - NSPrivacyTracking - - NSPrivacyTrackingDomains - - NSPrivacyAccessedAPITypes - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryUserDefaults - NSPrivacyAccessedAPITypeReasons - - CA92.1 - - - - NSPrivacyCollectedDataTypes - - - diff --git a/Pods/MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.h b/Pods/MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.h deleted file mode 100644 index df0423d..0000000 --- a/Pods/MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// UICollectionViewLayout+MJRefresh.h -// -// 该类是用来解决 Footer 在底端加载完成后, 仍停留在原处的 bug. -// 此问题出现在 iOS 14 及以下系统上. -// Reference: https://github.com/CoderMJLee/MJRefresh/issues/1552 -// -// Created by jiasong on 2021/11/15. -// Copyright © 2021 小码哥. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface UICollectionViewLayout (MJRefresh) - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.m b/Pods/MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.m deleted file mode 100644 index 00d030e..0000000 --- a/Pods/MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.m +++ /dev/null @@ -1,45 +0,0 @@ -// -// UICollectionViewLayout+MJRefresh.m -// -// 该类是用来解决 Footer 在底端加载完成后, 仍停留在原处的 bug. -// 此问题出现在 iOS 14 及以下系统上. -// Reference: https://github.com/CoderMJLee/MJRefresh/issues/1552 -// -// Created by jiasong on 2021/11/15. -// Copyright © 2021 小码哥. All rights reserved. -// - -#import "UICollectionViewLayout+MJRefresh.h" -#import "MJRefreshConst.h" -#import "MJRefreshFooter.h" -#import "UIScrollView+MJRefresh.h" - -@implementation UICollectionViewLayout (MJRefresh) - -+ (void)load { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - MJRefreshExchangeImplementations(self.class, @selector(finalizeCollectionViewUpdates), - self.class, @selector(mj_finalizeCollectionViewUpdates)); - }); -} - -- (void)mj_finalizeCollectionViewUpdates { - [self mj_finalizeCollectionViewUpdates]; - - __kindof MJRefreshFooter *footer = self.collectionView.mj_footer; - CGSize newSize = self.collectionViewContentSize; - CGSize oldSize = self.collectionView.contentSize; - if (footer != nil && !CGSizeEqualToSize(newSize, oldSize)) { - NSDictionary *changed = @{ - NSKeyValueChangeNewKey: [NSValue valueWithCGSize:newSize], - NSKeyValueChangeOldKey: [NSValue valueWithCGSize:oldSize], - }; - [CATransaction begin]; - [CATransaction setDisableActions:YES]; - [footer scrollViewContentSizeDidChange:changed]; - [CATransaction commit]; - } -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h b/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h deleted file mode 100644 index 1b46d59..0000000 --- a/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h +++ /dev/null @@ -1,28 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// UIScrollView+Extension.h -// MJRefresh -// -// Created by MJ Lee on 14-5-28. -// Copyright (c) 2014年 小码哥. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface UIScrollView (MJExtension) -@property (readonly, nonatomic) UIEdgeInsets mj_inset; - -@property (assign, nonatomic) CGFloat mj_insetT; -@property (assign, nonatomic) CGFloat mj_insetB; -@property (assign, nonatomic) CGFloat mj_insetL; -@property (assign, nonatomic) CGFloat mj_insetR; - -@property (assign, nonatomic) CGFloat mj_offsetX; -@property (assign, nonatomic) CGFloat mj_offsetY; - -@property (assign, nonatomic) CGFloat mj_contentW; -@property (assign, nonatomic) CGFloat mj_contentH; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.m b/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.m deleted file mode 100644 index 1c43721..0000000 --- a/Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.m +++ /dev/null @@ -1,153 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// UIScrollView+Extension.m -// MJRefresh -// -// Created by MJ Lee on 14-5-28. -// Copyright (c) 2014年 小码哥. All rights reserved. -// - -#import "UIScrollView+MJExtension.h" -#import - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunguarded-availability-new" - -@implementation UIScrollView (MJExtension) - -static BOOL respondsToAdjustedContentInset_; - -+ (void)load -{ - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - respondsToAdjustedContentInset_ = [self instancesRespondToSelector:@selector(adjustedContentInset)]; - }); -} - -- (UIEdgeInsets)mj_inset -{ -#ifdef __IPHONE_11_0 - if (respondsToAdjustedContentInset_) { - return self.adjustedContentInset; - } -#endif - return self.contentInset; -} - -- (void)setMj_insetT:(CGFloat)mj_insetT -{ - UIEdgeInsets inset = self.contentInset; - inset.top = mj_insetT; -#ifdef __IPHONE_11_0 - if (respondsToAdjustedContentInset_) { - inset.top -= (self.adjustedContentInset.top - self.contentInset.top); - } -#endif - self.contentInset = inset; -} - -- (CGFloat)mj_insetT -{ - return self.mj_inset.top; -} - -- (void)setMj_insetB:(CGFloat)mj_insetB -{ - UIEdgeInsets inset = self.contentInset; - inset.bottom = mj_insetB; -#ifdef __IPHONE_11_0 - if (respondsToAdjustedContentInset_) { - inset.bottom -= (self.adjustedContentInset.bottom - self.contentInset.bottom); - } -#endif - self.contentInset = inset; -} - -- (CGFloat)mj_insetB -{ - return self.mj_inset.bottom; -} - -- (void)setMj_insetL:(CGFloat)mj_insetL -{ - UIEdgeInsets inset = self.contentInset; - inset.left = mj_insetL; -#ifdef __IPHONE_11_0 - if (respondsToAdjustedContentInset_) { - inset.left -= (self.adjustedContentInset.left - self.contentInset.left); - } -#endif - self.contentInset = inset; -} - -- (CGFloat)mj_insetL -{ - return self.mj_inset.left; -} - -- (void)setMj_insetR:(CGFloat)mj_insetR -{ - UIEdgeInsets inset = self.contentInset; - inset.right = mj_insetR; -#ifdef __IPHONE_11_0 - if (respondsToAdjustedContentInset_) { - inset.right -= (self.adjustedContentInset.right - self.contentInset.right); - } -#endif - self.contentInset = inset; -} - -- (CGFloat)mj_insetR -{ - return self.mj_inset.right; -} - -- (void)setMj_offsetX:(CGFloat)mj_offsetX -{ - CGPoint offset = self.contentOffset; - offset.x = mj_offsetX; - self.contentOffset = offset; -} - -- (CGFloat)mj_offsetX -{ - return self.contentOffset.x; -} - -- (void)setMj_offsetY:(CGFloat)mj_offsetY -{ - CGPoint offset = self.contentOffset; - offset.y = mj_offsetY; - self.contentOffset = offset; -} - -- (CGFloat)mj_offsetY -{ - return self.contentOffset.y; -} - -- (void)setMj_contentW:(CGFloat)mj_contentW -{ - CGSize size = self.contentSize; - size.width = mj_contentW; - self.contentSize = size; -} - -- (CGFloat)mj_contentW -{ - return self.contentSize.width; -} - -- (void)setMj_contentH:(CGFloat)mj_contentH -{ - CGSize size = self.contentSize; - size.height = mj_contentH; - self.contentSize = size; -} - -- (CGFloat)mj_contentH -{ - return self.contentSize.height; -} -@end -#pragma clang diagnostic pop diff --git a/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h b/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h deleted file mode 100644 index 8ce3282..0000000 --- a/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h +++ /dev/null @@ -1,36 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// UIScrollView+MJRefresh.h -// MJRefresh -// -// Created by MJ Lee on 15/3/4. -// Copyright (c) 2015年 小码哥. All rights reserved. -// 给ScrollView增加下拉刷新、上拉刷新、 左滑刷新的功能 - -#import -#if __has_include() -#import -#else -#import "MJRefreshConst.h" -#endif - -@class MJRefreshHeader, MJRefreshFooter, MJRefreshTrailer; - -NS_ASSUME_NONNULL_BEGIN - -@interface UIScrollView (MJRefresh) -/** 下拉刷新控件 */ -@property (strong, nonatomic, nullable) MJRefreshHeader *mj_header; -@property (strong, nonatomic, nullable) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); -/** 上拉刷新控件 */ -@property (strong, nonatomic, nullable) MJRefreshFooter *mj_footer; -@property (strong, nonatomic, nullable) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); - -/** 左滑刷新控件 */ -@property (strong, nonatomic, nullable) MJRefreshTrailer *mj_trailer; - -#pragma mark - other -- (NSInteger)mj_totalDataCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.m b/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.m deleted file mode 100644 index 3bb85da..0000000 --- a/Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.m +++ /dev/null @@ -1,120 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// UIScrollView+MJRefresh.m -// MJRefresh -// -// 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 "MJRefreshTrailer.h" -#import - -@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]; - - if (mj_header) { - [self insertSubview:mj_header atIndex:0]; - } - // 存储新的 - objc_setAssociatedObject(self, &MJRefreshHeaderKey, - mj_header, OBJC_ASSOCIATION_RETAIN); - } -} - -- (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]; - if (mj_footer) { - [self insertSubview:mj_footer atIndex:0]; - } - // 存储新的 - objc_setAssociatedObject(self, &MJRefreshFooterKey, - mj_footer, OBJC_ASSOCIATION_RETAIN); - } -} - -- (MJRefreshFooter *)mj_footer -{ - return objc_getAssociatedObject(self, &MJRefreshFooterKey); -} - -#pragma mark - footer -static const char MJRefreshTrailerKey = '\0'; -- (void)setMj_trailer:(MJRefreshTrailer *)mj_trailer { - if (mj_trailer != self.mj_trailer) { - // 删除旧的,添加新的 - [self.mj_trailer removeFromSuperview]; - if (mj_trailer) { - [self insertSubview:mj_trailer atIndex:0]; - } - // 存储新的 - objc_setAssociatedObject(self, &MJRefreshTrailerKey, - mj_trailer, OBJC_ASSOCIATION_RETAIN); - } -} - -- (MJRefreshTrailer *)mj_trailer { - return objc_getAssociatedObject(self, &MJRefreshTrailerKey); -} - -#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; -} - -@end diff --git a/Pods/MJRefresh/MJRefresh/UIView+MJExtension.h b/Pods/MJRefresh/MJRefresh/UIView+MJExtension.h deleted file mode 100644 index 0ac0968..0000000 --- a/Pods/MJRefresh/MJRefresh/UIView+MJExtension.h +++ /dev/null @@ -1,22 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// UIView+Extension.h -// MJRefresh -// -// Created by MJ Lee on 14-5-28. -// Copyright (c) 2014年 小码哥. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface UIView (MJExtension) -@property (assign, nonatomic) CGFloat mj_x; -@property (assign, nonatomic) CGFloat mj_y; -@property (assign, nonatomic) CGFloat mj_w; -@property (assign, nonatomic) CGFloat mj_h; -@property (assign, nonatomic) CGSize mj_size; -@property (assign, nonatomic) CGPoint mj_origin; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/MJRefresh/MJRefresh/UIView+MJExtension.m b/Pods/MJRefresh/MJRefresh/UIView+MJExtension.m deleted file mode 100644 index f4dcf44..0000000 --- a/Pods/MJRefresh/MJRefresh/UIView+MJExtension.m +++ /dev/null @@ -1,83 +0,0 @@ -// 代码地址: https://github.com/CoderMJLee/MJRefresh -// UIView+Extension.m -// MJRefresh -// -// Created by MJ Lee on 14-5-28. -// Copyright (c) 2014年 小码哥. All rights reserved. -// - -#import "UIView+MJExtension.h" - -@implementation UIView (MJExtension) -- (void)setMj_x:(CGFloat)mj_x -{ - CGRect frame = self.frame; - frame.origin.x = mj_x; - self.frame = frame; -} - -- (CGFloat)mj_x -{ - return self.frame.origin.x; -} - -- (void)setMj_y:(CGFloat)mj_y -{ - CGRect frame = self.frame; - frame.origin.y = mj_y; - self.frame = frame; -} - -- (CGFloat)mj_y -{ - return self.frame.origin.y; -} - -- (void)setMj_w:(CGFloat)mj_w -{ - CGRect frame = self.frame; - frame.size.width = mj_w; - self.frame = frame; -} - -- (CGFloat)mj_w -{ - return self.frame.size.width; -} - -- (void)setMj_h:(CGFloat)mj_h -{ - CGRect frame = self.frame; - frame.size.height = mj_h; - self.frame = frame; -} - -- (CGFloat)mj_h -{ - return self.frame.size.height; -} - -- (void)setMj_size:(CGSize)mj_size -{ - CGRect frame = self.frame; - frame.size = mj_size; - self.frame = frame; -} - -- (CGSize)mj_size -{ - return self.frame.size; -} - -- (void)setMj_origin:(CGPoint)mj_origin -{ - CGRect frame = self.frame; - frame.origin = mj_origin; - self.frame = frame; -} - -- (CGPoint)mj_origin -{ - return self.frame.origin; -} -@end diff --git a/Pods/MJRefresh/README.md b/Pods/MJRefresh/README.md deleted file mode 100644 index 0746fbe..0000000 --- a/Pods/MJRefresh/README.md +++ /dev/null @@ -1,457 +0,0 @@ -## MJRefresh -[![SPM supported](https://img.shields.io/badge/SPM-supported-4BC51D.svg?style=flat)](https://github.com/apple/swift-package-manager) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![podversion](https://img.shields.io/cocoapods/v/MJRefresh.svg)](https://cocoapods.org/pods/MJRefresh) - -* An easy way to use pull-to-refresh - -[📜✍🏻**Release Notes**: more details](https://github.com/CoderMJLee/MJRefresh/releases) - -## Contents - -- New Features - - [Dynamic i18n Switching](#dynamic_i18n_switching) - - [SPM Supported](#spm_supported) - - [Swift Chaining Grammar Supported](#swift_chaining_grammar_supported) - -* Getting Started - * [Features【Support what kinds of controls to refresh】](#Support_what_kinds_of_controls_to_refresh) - * [Installation【How to use MJRefresh】](#How_to_use_MJRefresh) - * [Who's using【More than hundreds of Apps are using MJRefresh】](#More_than_hundreds_of_Apps_are_using_MJRefresh) - * [Classes【The Class Structure Chart of MJRefresh】](#The_Class_Structure_Chart_of_MJRefresh) -* Comment API - * [MJRefreshComponent.h](#MJRefreshComponent.h) - * [MJRefreshHeader.h](#MJRefreshHeader.h) - * [MJRefreshFooter.h](#MJRefreshFooter.h) - * [MJRefreshAutoFooter.h](#MJRefreshAutoFooter.h) - * [MJRefreshTrailer.h](#MJRefreshTrailer.h) -* Examples - * [Reference](#Reference) - * [The drop-down refresh 01-Default](#The_drop-down_refresh_01-Default) - * [The drop-down refresh 02-Animation image](#The_drop-down_refresh_02-Animation_image) - * [The drop-down refresh 03-Hide the time](#The_drop-down_refresh_03-Hide_the_time) - * [The drop-down refresh 04-Hide status and time](#The_drop-down_refresh_04-Hide_status_and_time) - * [The drop-down refresh 05-DIY title](#The_drop-down_refresh_05-DIY_title) - * [The drop-down refresh 06-DIY the control of refresh](#The_drop-down_refresh_06-DIY_the_control_of_refresh) - * [The pull to refresh 01-Default](#The_pull_to_refresh_01-Default) - * [The pull to refresh 02-Animation image](#The_pull_to_refresh_02-Animation_image) - * [The pull to refresh 03-Hide the title of refresh status](#The_pull_to_refresh_03-Hide_the_title_of_refresh_status) - * [The pull to refresh 04-All loaded](#The_pull_to_refresh_04-All_loaded) - * [The pull to refresh 05-DIY title](#The_pull_to_refresh_05-DIY_title) - * [The pull to refresh 06-Hidden After loaded](#The_pull_to_refresh_06-Hidden_After_loaded) - * [The pull to refresh 07-Automatic back of the pull01](#The_pull_to_refresh_07-Automatic_back_of_the_pull01) - * [The pull to refresh 08-Automatic back of the pull02](#The_pull_to_refresh_08-Automatic_back_of_the_pull02) - * [The pull to refresh 09-DIY the control of refresh(Automatic refresh)](#The_pull_to_refresh_09-DIY_the_control_of_refresh(Automatic_refresh)) - * [The pull to refresh 10-DIY the control of refresh(Automatic back)](#The_pull_to_refresh_10-DIY_the_control_of_refresh(Automatic_back)) - * [UICollectionView01-The pull and drop-down refresh](#UICollectionView01-The_pull_and_drop-down_refresh) - * [UICollectionView02-The trailer refresh](#UICollectionView02-The_trailer_refresh) - * [WKWebView01-The drop-down refresh](#WKWebView01-The_drop-down_refresh) -* [Hope](#Hope) - -## New Features -### Dynamic i18n Switching - -Now `MJRefresh components` will be rerendered automatically with `MJRefreshConfig.default.language` setting. - -#### Example - -Go `i18n` folder and see lots of cases. Simulator example is behind `i18n tab` in right-top corner. - -#### Setting language - -```swift -MJRefreshConfig.default.language = "zh-hans" -``` - -#### Setting i18n file name - -```swift -MJRefreshConfig.default.i18nFilename = "i18n File Name(not include type<.strings>)" -``` - -#### Setting i18n language bundle - -```swift -MJRefreshConfig.default.i18nBundle = -``` - -#### Adopting the feature in your DIY component - -1. Just override `i18nDidChange` function and reset texts. - -```swift -// must use this localization methods -Bundle.mj_localizedString(forKey: "") -// or -Bundle.mj_localizedString(forKey: "", value:"") - -override func i18nDidChange() { - // Reset texts function - setupTexts() - // Make sure to call super after resetting texts. It will call placeSubViews for applying new layout. - super.i18nDidChange() -} -``` - -2. Receiving `MJRefreshDidChangeLanguageNotification` notification. - -### SPM Supported - -Released from [`3.7.1`](https://github.com/CoderMJLee/MJRefresh/releases/tag/3.7.1) - -### Swift Chaining Grammar Supported - -```swift - // Example as MJRefreshNormalHeader - func addRefreshHeader() { - MJRefreshNormalHeader { [weak self] in - // load some data - }.autoChangeTransparency(true) - .link(to: tableView) - } -``` - -## Support what kinds of controls to refresh - -* `UIScrollView`、`UITableView`、`UICollectionView`、`WKWebView` - -## How to use MJRefresh -* Installation with CocoaPods:`pod 'MJRefresh'` -* Installation with [Carthage](https://github.com/Carthage/Carthage):`github "CoderMJLee/MJRefresh"` -* Manual import: - * Drag All files in the `MJRefresh` folder to project - * Import the main file:`#import "MJRefresh.h"` - -```objc -Base Custom -MJRefresh.bundle MJRefresh.h -MJRefreshConst.h MJRefreshConst.m -UIScrollView+MJExtension.h UIScrollView+MJExtension.m -UIScrollView+MJRefresh.h UIScrollView+MJRefresh.m -UIView+MJExtension.h UIView+MJExtension.m -``` - -## More than hundreds of Apps are using MJRefresh - -* More information of App can focus on:[M了个J-博客园](http://www.cnblogs.com/mjios/p/4409853.html) - -## The Class Structure Chart of MJRefresh -![](http://images0.cnblogs.com/blog2015/497279/201506/132232456139177.png) -- `The class of red text` in the chart:You can use them directly - - The drop-down refresh control types - - Normal:`MJRefreshNormalHeader` - - Gif:`MJRefreshGifHeader` - - The pull to refresh control types - - Auto refresh - - Normal:`MJRefreshAutoNormalFooter` - - Gif:`MJRefreshAutoGifFooter` - - Auto Back - - Normal:`MJRefreshBackNormalFooter` - - Gif:`MJRefreshBackGifFooter` - -- `The class of non-red text` in the chart:For inheritance,to use DIY the control of refresh - -- About how to DIY the control of refresh,You can refer the Class in below Chart
- - - -## MJRefreshComponent.h -```objc -/** The Base Class of refresh control */ -@interface MJRefreshComponent : UIView -#pragma mark - Control the state of Refresh - -/** BeginRefreshing */ -- (void)beginRefreshing; -/** EndRefreshing */ -- (void)endRefreshing; -/** IsRefreshing */ -- (BOOL)isRefreshing; - -#pragma mark - Other -/** According to the drag ratio to change alpha automatically */ -@property (assign, nonatomic, getter=isAutomaticallyChangeAlpha) BOOL automaticallyChangeAlpha; -@end -``` - -## MJRefreshHeader.h -```objc -@interface MJRefreshHeader : MJRefreshComponent -/** Creat header */ -+ (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; -/** Creat header */ -+ (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; - -/** This key is used to storage the time that the last time of drown-down successfully */ -@property (copy, nonatomic) NSString *lastUpdatedTimeKey; -/** The last time of drown-down successfully */ -@property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; - -/** Ignored scrollView contentInset top */ -@property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; -@end -``` - -## MJRefreshFooter.h -```objc -@interface MJRefreshFooter : MJRefreshComponent -/** Creat footer */ -+ (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; -/** Creat footer */ -+ (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; - -/** NoticeNoMoreData */ -- (void)noticeNoMoreData; -/** ResetNoMoreData(Clear the status of NoMoreData ) */ -- (void)resetNoMoreData; - -/** Ignored scrollView contentInset bottom */ -@property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; -@end -``` - -## MJRefreshAutoFooter.h -```objc -@interface MJRefreshAutoFooter : MJRefreshFooter -/** Is Automatically Refresh(Default is Yes) */ -@property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; - -/** When there is much at the bottom of the control is automatically refresh(Default is 1.0,Is at the bottom of the control appears in full, will refresh automatically) */ -@property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; -@end -``` - -## MJRefreshTrailer.h -```objc -@interface MJRefreshTrailer : MJRefreshComponent - -/** 创建trailer */ -+ (instancetype)trailerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; -/** 创建trailer */ -+ (instancetype)trailerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; - -/** 忽略多少scrollView的contentInset的right */ -@property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetRight; - -@end -``` - -## Reference -```objc -* Due to there are more functions of this framework,Don't write specific text describe its usage -* You can directly reference examples MJTableViewController、MJCollectionViewController、MJWebViewController,More intuitive and fast. -``` - - -## The drop-down refresh 01-Default - -```objc -self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ - //Call this Block When enter the refresh status automatically -}]; -或 -// Set the callback(Once you enter the refresh status,then call the action of target,that is call [self loadNewData]) -self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)]; - -// Enter the refresh status immediately -[self.tableView.mj_header beginRefreshing]; -``` -![(下拉刷新01-普通)](http://images0.cnblogs.com/blog2015/497279/201506/141204343486151.gif) - -## The drop-down refresh 02-Animation image -```objc -// Set the callback(一Once you enter the refresh status,then call the action of target,that is call [self loadNewData]) -MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)]; -// Set the ordinary state of animated images -[header setImages:idleImages forState:MJRefreshStateIdle]; -// Set the pulling state of animated images(Enter the status of refreshing as soon as loosen) -[header setImages:pullingImages forState:MJRefreshStatePulling]; -// Set the refreshing state of animated images -[header setImages:refreshingImages forState:MJRefreshStateRefreshing]; -// Set header -self.tableView.mj_header = header; -``` -![(下拉刷新02-动画图片)](http://images0.cnblogs.com/blog2015/497279/201506/141204402238389.gif) - -## The drop-down refresh 03-Hide the time -```objc -// Hide the time -header.lastUpdatedTimeLabel.hidden = YES; -``` -![(下拉刷新03-隐藏时间)](http://images0.cnblogs.com/blog2015/497279/201506/141204456132944.gif) - -## The drop-down refresh 04-Hide status and time -```objc -// Hide the time -header.lastUpdatedTimeLabel.hidden = YES; - -// Hide the status -header.stateLabel.hidden = YES; -``` -![(下拉刷新04-隐藏状态和时间0)](http://images0.cnblogs.com/blog2015/497279/201506/141204508639539.gif) - -## The drop-down refresh 05-DIY title -```objc -// Set title -[header setTitle:@"Pull down to refresh" forState:MJRefreshStateIdle]; -[header setTitle:@"Release to refresh" forState:MJRefreshStatePulling]; -[header setTitle:@"Loading ..." forState:MJRefreshStateRefreshing]; - -// Set font -header.stateLabel.font = [UIFont systemFontOfSize:15]; -header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:14]; - -// Set textColor -header.stateLabel.textColor = [UIColor redColor]; -header.lastUpdatedTimeLabel.textColor = [UIColor blueColor]; -``` -![(下拉刷新05-自定义文字)](http://images0.cnblogs.com/blog2015/497279/201506/141204563633593.gif) - -## The drop-down refresh 06-DIY the control of refresh -```objc -self.tableView.mj_header = [MJDIYHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)]; -// Implementation reference to MJDIYHeader.h和MJDIYHeader.m -``` -![(下拉刷新06-自定义刷新控件)](http://images0.cnblogs.com/blog2015/497279/201506/141205019261159.gif) - -## The pull to refresh 01-Default -```objc -self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{ - //Call this Block When enter the refresh status automatically -}]; -或 -// Set the callback(Once you enter the refresh status,then call the action of target,that is call [self loadMoreData]) -self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; -``` -![(上拉刷新01-默认)](http://images0.cnblogs.com/blog2015/497279/201506/141205090047696.gif) - -## The pull to refresh 02-Animation image -```objc -// Set the callback(Once you enter the refresh status,then call the action of target,that is call [self loadMoreData]) -MJRefreshAutoGifFooter *footer = [MJRefreshAutoGifFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; - -// Set the refresh image -[footer setImages:refreshingImages forState:MJRefreshStateRefreshing]; - -// Set footer -self.tableView.mj_footer = footer; -``` -![(上拉刷新02-动画图片)](http://images0.cnblogs.com/blog2015/497279/201506/141205141445793.gif) - -## The pull to refresh 03-Hide the title of refresh status -```objc -// Hide the title of refresh status -footer.refreshingTitleHidden = YES; -// If does have not above method,then use footer.stateLabel.hidden = YES; -``` -![(上拉刷新03-隐藏刷新状态的文字)](http://images0.cnblogs.com/blog2015/497279/201506/141205200985774.gif) - -## The pull to refresh 04-All loaded -```objc -//Become the status of NoMoreData -[footer noticeNoMoreData]; -``` -![(上拉刷新04-全部加载完毕)](http://images0.cnblogs.com/blog2015/497279/201506/141205248634686.gif) - -## The pull to refresh 05-DIY title -```objc -// Set title -[footer setTitle:@"Click or drag up to refresh" forState:MJRefreshStateIdle]; -[footer setTitle:@"Loading more ..." forState:MJRefreshStateRefreshing]; -[footer setTitle:@"No more data" forState:MJRefreshStateNoMoreData]; - -// Set font -footer.stateLabel.font = [UIFont systemFontOfSize:17]; - -// Set textColor -footer.stateLabel.textColor = [UIColor blueColor]; -``` -![(上拉刷新05-自定义文字)](http://images0.cnblogs.com/blog2015/497279/201506/141205295511153.gif) - -## The pull to refresh 06-Hidden After loaded -```objc -//Hidden current control of the pull to refresh -self.tableView.mj_footer.hidden = YES; -``` -![(上拉刷新06-加载后隐藏)](http://images0.cnblogs.com/blog2015/497279/201506/141205343481821.gif) - -## The pull to refresh 07-Automatic back of the pull01 -```objc -self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; -``` -![(上拉刷新07-自动回弹的上拉01)](http://images0.cnblogs.com/blog2015/497279/201506/141205392239231.gif) - -## The pull to refresh 08-Automatic back of the pull02 -```objc -MJRefreshBackGifFooter *footer = [MJRefreshBackGifFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; - -// Set the normal state of the animated image -[footer setImages:idleImages forState:MJRefreshStateIdle]; -// Set the pulling state of animated images(Enter the status of refreshing as soon as loosen) -[footer setImages:pullingImages forState:MJRefreshStatePulling]; -// Set the refreshing state of animated images -[footer setImages:refreshingImages forState:MJRefreshStateRefreshing]; - -// Set footer -self.tableView.mj_footer = footer; -``` -![(上拉刷新07-自动回弹的上拉02)](http://images0.cnblogs.com/blog2015/497279/201506/141205441443628.gif) - -## The pull to refresh 09-DIY the control of refresh(Automatic refresh) -```objc -self.tableView.mj_footer = [MJDIYAutoFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; -// Implementation reference to MJDIYAutoFooter.h和MJDIYAutoFooter.m -``` -![(上拉刷新09-自定义刷新控件(自动刷新))](http://images0.cnblogs.com/blog2015/497279/201506/141205500195866.gif) - -## The pull to refresh 10-DIY the control of refresh(Automatic back) -```objc -self.tableView.mj_footer = [MJDIYBackFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; -// Implementation reference to MJDIYBackFooter.h和MJDIYBackFooter.m -``` -![(上拉刷新10-自定义刷新控件(自动回弹))](http://images0.cnblogs.com/blog2015/497279/201506/141205560666819.gif) - -## UICollectionView01-The pull and drop-down refresh -```objc -// The drop-down refresh -self.collectionView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ - //Call this Block When enter the refresh status automatically -}]; - -// The pull to refresh -self.collectionView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{ - //Call this Block When enter the refresh status automatically -}]; -``` -![(UICollectionView01-上下拉刷新)](http://images0.cnblogs.com/blog2015/497279/201506/141206021603758.gif) - -## UICollectionView02-The trailer refresh -```objc -// The trailer refresh -self.collectionView.mj_trailer = [MJRefreshNormalTrailer trailerWithRefreshingBlock:^{ - //Call this Block When enter the refresh status automatically -}]; - -``` -![(UICollectionView02-左拉刷新)](Gif/trailer_refresh.gif) - -## WKWebView01-The drop-down refresh -```objc -//Add the control of The drop-down refresh -self.webView.scrollView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ - //Call this Block When enter the refresh status automatically -}]; -``` -![(UICollectionView01-上下拉刷新)](http://images0.cnblogs.com/blog2015/497279/201506/141206080514524.gif) - -## Remind -* ARC -* iOS>=9.0 -* iPhone \ iPad screen anyway - -## 寻求志同道合的小伙伴 - -- 因本人工作忙,没有太多时间去维护MJRefresh,在此向广大框架使用者说声:非常抱歉!😞 -- 现寻求志同道合的小伙伴一起维护此框架,有兴趣的小伙伴可以[发邮件](mailto:richermj123go@vip.qq.com)给我,非常感谢😊 -- 如果一切OK,我将开放框架维护权限(github、pod等) -- 目前已经找到3位小伙伴(^-^)V diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 1b87510..db846d1 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -6,13 +6,11 @@ PODS: - AMapFoundation-NO-IDFA (>= 1.8.7) - AMapSearch-NO-IDFA (9.7.5): - AMapFoundation-NO-IDFA (>= 1.8.0) - - MJRefresh (3.7.9) DEPENDENCIES: - AMap3DMap-NO-IDFA (~> 11.1) - AMapLocation-NO-IDFA (~> 2.11) - AMapSearch-NO-IDFA (~> 9.7) - - MJRefresh (~> 3.7) SPEC REPOS: trunk: @@ -20,15 +18,13 @@ SPEC REPOS: - AMapFoundation-NO-IDFA - AMapLocation-NO-IDFA - AMapSearch-NO-IDFA - - MJRefresh SPEC CHECKSUMS: AMap3DMap-NO-IDFA: 393a24abb0451fed2daa4316c8d3d356a395f2be AMapFoundation-NO-IDFA: f48acbf6e74913dc6744581053f7d984f2432850 AMapLocation-NO-IDFA: 0fa6e7d5e42e10253f4437424d98966f53760862 AMapSearch-NO-IDFA: 8e9d104032990a3b0cab66afb535299887c61047 - MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 -PODFILE CHECKSUM: dd39a238c7d1f1de8b61bcb07e20911bedae96b7 +PODFILE CHECKSUM: baa972253fcebc312545f7592c48cbba632f1907 COCOAPODS: 1.16.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index a4b29bb..f98de1b 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -13,7 +13,7 @@ buildPhases = ( ); dependencies = ( - 14AF565C4637B73BC2584C61CC7EC677 /* PBXTargetDependency */, + 6C65DF00B250F024B4E6B6F4330093DA /* PBXTargetDependency */, ); name = "AMapLocation-NO-IDFA"; }; @@ -23,13 +23,13 @@ buildPhases = ( ); dependencies = ( - 2D0AD056C34FAA29284DF2D03917892C /* PBXTargetDependency */, + 770B6209BD1D6EEACDEC08C4F8D15368 /* PBXTargetDependency */, ); name = "AMapSearch-NO-IDFA"; }; 9B182CB4E1716E9070813D3C59736001 /* AMapFoundation-NO-IDFA */ = { isa = PBXAggregateTarget; - buildConfigurationList = A1A94DBC4284DCAFF692A764EFF209C7 /* Build configuration list for PBXAggregateTarget "AMapFoundation-NO-IDFA" */; + buildConfigurationList = C2E882BA611C08B99AFF453B387FB2C2 /* Build configuration list for PBXAggregateTarget "AMapFoundation-NO-IDFA" */; buildPhases = ( ); dependencies = ( @@ -42,369 +42,223 @@ buildPhases = ( ); dependencies = ( - 27F685E292172B93505CBABC9D049072 /* PBXTargetDependency */, + 5CA482D3FDDBAD1FBF45810BFB30868D /* PBXTargetDependency */, ); name = "AMap3DMap-NO-IDFA"; }; /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 08719ABCE689ED74FE7486B1E49DAA6C /* MJRefreshBackStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FE45307E1589134990F6D62D5D51D7 /* MJRefreshBackStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EF10747EF2A02413E84BD5EF7C87A4B /* MJRefreshNormalHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 950F5DF4CC9F1990F496C1FA1B51A3EB /* MJRefreshNormalHeader.m */; }; - 11C929E6BFB46F981685446F26DCE605 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 995A1FE995BF8A3BB47436F3D05C8251 /* MJRefreshAutoFooter.m */; }; - 186B573F1BEB8A23419A02814A7741DB /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 981AA3A188835E8705A105A86799212E /* MJRefreshFooter.m */; }; - 1B4E84392BCAE40B8D02294001544906 /* Pods-suixinkanTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DB9F697E059AD84BBE6DB6241D65A19 /* Pods-suixinkanTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22516EA77E7120000632C30BD9A03927 /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D251D37879678420C2E21DB2DA7CDD1 /* UIScrollView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24E963C1D6245F98BAC8A0ACCB7DE987 /* NSBundle+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = D03AEB9827714C23A990AEDD1B44E00E /* NSBundle+MJRefresh.m */; }; - 28BA9702905AA2B4C1E9E4878032D4E4 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 434092C132A5B63621FAD580FF82D0A7 /* MJRefreshConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DC44A09A6C9D6DC7D1BDA2DFCF99EE3 /* MJRefreshConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 655C7084A60741488C18B8F24B3D97B8 /* MJRefreshConfig.m */; }; - 325CA20B9271F3E008234E1518B79061 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D911B8DB93AFACCBF68114FC04A060E1 /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh-MJRefresh.Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */; }; - 3A2FCB914F6EADED828FF05F7E9132AE /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 925902FC9C669D9561854D1667C48580 /* UIView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 442F468E261A1106C291BF52BDBF9DB7 /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = DB458DF9FE4C818BDA198678A04781AF /* MJRefreshHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 452C940762F65B125C216F73B369F583 /* MJRefreshStateTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B423EED53D5FCECC2E3EBDE3C439A1 /* MJRefreshStateTrailer.m */; }; - 45E1583D7EF53489B82C4CA2AD1AD0CF /* MJRefreshBackFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B04E1C6538D1C855BDAFD2C7F1CBCD1 /* MJRefreshBackFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 475B4F3E71C293065AAFDB1888696CF6 /* MJRefreshBackGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FE5CE5609C08A51C59D0BC7714A4D47 /* MJRefreshBackGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4DCA75BFE1558CE59DFC56607E49B3D2 /* MJRefreshConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB5B52027B67AC28237EBB53E108905 /* MJRefreshConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5163FC6D715F6881B1FA1AB13DCEF870 /* UICollectionViewLayout+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 47C9D7D67F0E2980F8FEA947D9E74227 /* UICollectionViewLayout+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 523235228A1C021C67F2E3776A922DC5 /* MJRefreshTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D878ED047D33FA3082CE6DB77514966 /* MJRefreshTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 54E268C32915CF908E7AA776909B45EB /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 03388D61B1D3E062A4B713B0C5D98736 /* MJRefreshConst.m */; }; - 561420A20DC0A84258A902E9EB69A15A /* MJRefreshAutoFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 30521482B763363B7C1BB8B78D626408 /* MJRefreshAutoFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BB6B99986FD7111B3AEBE931C7F507B /* MJRefreshAutoStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E888C9D7D01770B0F1DE720E44ABC3B /* MJRefreshAutoStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BD5D9B8F61C124A62C75D9AC36A07BD /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = F5338D394E610BCD3F8C72B229FB1A7F /* MJRefreshTrailer.m */; }; - 5DFCBADAC7D0FAC82C84A6C8E7BF1DA6 /* MJRefreshStateHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 52A5A70614325B9002E369D7B735C716 /* MJRefreshStateHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FDC4239F7B651092BF582D0F460BAD4 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BA37E3DD83CB95CA0B8347B095F829 /* UIView+MJExtension.m */; }; - 61461B0D9D7B81C3F8D24066D9A19DCE /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = BD29D57952BA6E6CF04E3C2A45E8C616 /* MJRefreshGifHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69345CBCB31076EBF8A2C5885AF973AB /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EC4984D77C13565AB9A20E002F820B8 /* MJRefreshComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69E353C99C6EEA3C93CCF2E526460B9D /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 569BD1C3159DE167886F2963AF89348E /* UIScrollView+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DE6C7F0FA965828E4FCE687BF75FBBE /* MJRefreshAutoNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = F4DFB7CBF31FD9C7711987D012F18593 /* MJRefreshAutoNormalFooter.m */; }; - 7902D28FC9EF5AFEB452F508C7F266B1 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E126C7322D94BBD217EB1D1A973FDB9 /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7989A6E79BFA78440C39F568D972305C /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 511A44384A21156E702371258C38641A /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80F3B2F81449FE093C334EACB25832F9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62CCE9A31EA86B6AA69227E0E25AC09D /* PrivacyInfo.xcprivacy */; }; - 81A5635CEA2AD9623E30CAE9AFC3BF65 /* NSBundle+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 57629F1D48C217EF6EBB75B1630298DC /* NSBundle+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83A4F2816C1B3F072E1A26A34C3BC4AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; - 85AB23275E9D19394969235E5DC2300E /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 50DFF895D10A3B267303D82E51B50E81 /* MJRefreshHeader.m */; }; - 8872BEB0954C0254A792469F4DBC9891 /* MJRefreshAutoStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B2EAA3B807B65EFEDA370EB765D6FC8 /* MJRefreshAutoStateFooter.m */; }; - 8AA66BD0572CCDC71153FEA95C7AB666 /* Pods-suixinkanTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37B17973B8B0E935D23A94470AB95C07 /* Pods-suixinkanTests-dummy.m */; }; + 1B4E84392BCAE40B8D02294001544906 /* Pods-suixinkanTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 65EE9CD76EF8BD358253184A5FA8B069 /* Pods-suixinkanTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8AA66BD0572CCDC71153FEA95C7AB666 /* Pods-suixinkanTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC4E88072A58FC7DD14D5BC2316725E /* Pods-suixinkanTests-dummy.m */; }; 914AE43A691016D126083E13CFD8919F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; - 955B87902E039163281C4F47C95DB851 /* MJRefreshBackNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9B3B6A9284B28E0FC77B0BFC8486A4 /* MJRefreshBackNormalFooter.m */; }; - 9A7FB1E975A5955C896E6B195C521804 /* MJRefreshBackNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = FFCE7657A94B976454ACDE4B4AAC05EC /* MJRefreshBackNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A078A275FFFA48D620074790DA3CA6CE /* MJRefreshStateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 490B69B5C348D4367AF5F227FA482776 /* MJRefreshStateHeader.m */; }; - A1E44277704AD68E867FD7C955A6632D /* MJRefreshBackGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = B309EBEA8D93176A9924EEF9714CA1C0 /* MJRefreshBackGifFooter.m */; }; - A86CC1AFDFDD692DC4EE66F57C0F39E6 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 5545A81EF57444268EE3EA581C8CCECB /* UIScrollView+MJRefresh.m */; }; - B09F08548ACA8379445F6525011EE219 /* MJRefreshBackStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7031EEC5F08BCA8AD8D81E1275787D67 /* MJRefreshBackStateFooter.m */; }; - B334090388C245FABE5077F228965657 /* Pods-suixinkan-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A60233C7119F0105DB6C68E30CCC216F /* Pods-suixinkan-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7CC9AE896BFAB94775EAA25D7442422 /* Pods-suixinkan-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A3ABC34D5CA51948F7619021EEC414 /* Pods-suixinkan-dummy.m */; }; - BC2F9B1D6986FEB23B4FB1288B512538 /* MJRefreshNormalTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 97BAD9E47B49248B2119D1C3F6250FE7 /* MJRefreshNormalTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD30193C1E3D7B1F17B1B1F3F08BE655 /* UICollectionViewLayout+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A4086AD383BE916A71549746D7E5B1F /* UICollectionViewLayout+MJRefresh.m */; }; - C60DB44F719853DE3B7157960DAF9270 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 033A496A62413DF226ADC1719939E4DC /* MJRefreshComponent.m */; }; - C7D17875E874285B6ACB1C9AE2BA5FFD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; - D90607B4E56247B19B14462E487BA86E /* MJRefreshNormalTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 73013CAB4D167A786A6554B05F0AB2E1 /* MJRefreshNormalTrailer.m */; }; - D90DED0F5638B1C44F4B6C62D600D240 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 41654620E68E97EF25361CA3CA3EEE06 /* MJRefreshFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D90DF1376DF5E2EA644313BCD2E03058 /* MJRefresh.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8001677E7E32E68BEBCE0CFDEE3B84B6 /* MJRefresh.bundle */; }; - DE98ECCCA7106A4EA575EF34830D41FF /* MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CF8E839440EBA2ED0ED264FE13D5827 /* MJRefresh-dummy.m */; }; - E1DE69F6BB6235A6EDB6C99A184BEDB4 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = AC399AE9AF1014D507A51FFA131483A4 /* UIScrollView+MJExtension.m */; }; - E5B057BC87284367918B2DB9CA084B4E /* MJRefreshAutoGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 08BEFA5D20896D889C60B1BB73C348C4 /* MJRefreshAutoGifFooter.m */; }; - EC8E84A8FFADDCA562A8608D141D9027 /* MJRefreshAutoGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = C32F77F7675473EFFE4AAA8D0E7965BF /* MJRefreshAutoGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE6E8FE636D2C02E3D2FC1E8555B4612 /* MJRefreshNormalHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = CE08AE5F88748CDF0F1496822B015138 /* MJRefreshNormalHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3AECEF6D3BB919B3E7392942E1BC58B /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 281D756A5D80919F92DC593748BFF12D /* MJRefreshBackFooter.m */; }; - F60F90EAF35CFF40DF1C33557965787D /* MJRefreshStateTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2030C0A1678DD735DE5A068524C428D0 /* MJRefreshStateTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEE883575278D5BE8F185437AB5DB3BB /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = C5294A108B71ADD7C9A4D6C3B5EEE037 /* MJRefreshGifHeader.m */; }; + 991C56154D625F2C902B960C2F8EA27F /* Pods-suixinkan-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CE36A961B0F78784EC9BFE7F48C84F82 /* Pods-suixinkan-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA1E1655DA5C4F62F66ADA15925A59E3 /* Pods-suixinkan-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BF228B17BC7260C40143BD13BD131504 /* Pods-suixinkan-dummy.m */; }; + FE0C74C01E8F98ADE1ECDE8206972D03 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 07CE15427FBD194439F72813F1E79F5D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; - remoteInfo = MJRefresh; - }; - 0ED508B124853B684DDAEE58F0371D71 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4F1379598302C9160590B3650C10E1A5; - remoteInfo = "AMapSearch-NO-IDFA"; - }; - 36D052FD95B687E1F36CEDFEEA13AFD6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9B182CB4E1716E9070813D3C59736001; - remoteInfo = "AMapFoundation-NO-IDFA"; - }; - 39E814A976E263DBFB8C20B560CA29E2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BD4E22D3419D68A85BDD6119CB37C6C; - remoteInfo = "AMapLocation-NO-IDFA"; - }; - 58ACB14B669F8CD6C4362DD783E388FC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9B182CB4E1716E9070813D3C59736001; - remoteInfo = "AMapFoundation-NO-IDFA"; - }; - 5FF2C31B96AE85013B4BEBC8B641E3C6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9B182CB4E1716E9070813D3C59736001; - remoteInfo = "AMapFoundation-NO-IDFA"; - }; - 809D27ABC18E19451394228BE9D4AA86 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B26054DF1DEA11585A231AF6D1D80D5E; - remoteInfo = "MJRefresh-MJRefresh.Privacy"; - }; - A3A7B10AC9A70CD988084F9A0559EFEE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B44FB02BD2D3FEAD1F36808AD405A543; - remoteInfo = "AMap3DMap-NO-IDFA"; - }; - B93D696C9911155C9CFB043E22AF9B10 /* PBXContainerItemProxy */ = { + 09D400E62C865DFB3552C9FF55DFBF14 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 1DE17B7C77CD95CB67DF1197965B76AB; remoteInfo = "Pods-suixinkan"; }; - E0B1E07063BAB873511674BF967B3596 /* PBXContainerItemProxy */ = { + 10773E84BB082E09D8E276432A257D58 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4BD4E22D3419D68A85BDD6119CB37C6C; + remoteInfo = "AMapLocation-NO-IDFA"; + }; + 2B4CA41C0FEC2F8A31D4426133DAE413 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 9B182CB4E1716E9070813D3C59736001; remoteInfo = "AMapFoundation-NO-IDFA"; }; + 47D4666849C29F0443F98043012741E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9B182CB4E1716E9070813D3C59736001; + remoteInfo = "AMapFoundation-NO-IDFA"; + }; + 589E9D53A0A18E62241CDC1546C39754 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9B182CB4E1716E9070813D3C59736001; + remoteInfo = "AMapFoundation-NO-IDFA"; + }; + 70FAFD022EBDF3AF6FA6D56FD062BC00 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9B182CB4E1716E9070813D3C59736001; + remoteInfo = "AMapFoundation-NO-IDFA"; + }; + 7F46567B2D4C2C2D6B168DB1D6C4B959 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B44FB02BD2D3FEAD1F36808AD405A543; + remoteInfo = "AMap3DMap-NO-IDFA"; + }; + AEBE04EE6A5B130F5ABA3ADAA7541F3D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4F1379598302C9160590B3650C10E1A5; + remoteInfo = "AMapSearch-NO-IDFA"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 01003F931713782781BF6BB014711F27 /* Pods-suixinkanTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-suixinkanTests-acknowledgements.markdown"; sourceTree = ""; }; - 03388D61B1D3E062A4B713B0C5D98736 /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefresh/MJRefreshConst.m; sourceTree = ""; }; - 033A496A62413DF226ADC1719939E4DC /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefresh/Base/MJRefreshComponent.m; sourceTree = ""; }; - 06135C4E3D8CEE3E6B9606213747F3DD /* AMapLocationRegionObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationRegionObj.h; path = AMapLocationKit.framework/Headers/AMapLocationRegionObj.h; sourceTree = ""; }; - 067553896ECDDC64822E77C0793C8D83 /* MAOfflineItemNationWide.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItemNationWide.h; path = MAMapKit.framework/Headers/MAOfflineItemNationWide.h; sourceTree = ""; }; - 081A933139371B97D5ABFD37B065516E /* Pods-suixinkan.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkan.release.xcconfig"; sourceTree = ""; }; - 08BEFA5D20896D889C60B1BB73C348C4 /* MJRefreshAutoGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoGifFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m; sourceTree = ""; }; - 0AD5AF59E9B5193792BD98D1FCF13958 /* AMapSearchVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchVersion.h; path = AMapSearchKit.framework/Headers/AMapSearchVersion.h; sourceTree = ""; }; - 0B071FB150EB0F80F1B6DDAADB9F3EA1 /* MABaseOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MABaseOverlay.h; path = MAMapKit.framework/Headers/MABaseOverlay.h; sourceTree = ""; }; - 141DFD00F58AA3D0128125F76718B57F /* MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-prefix.pch"; sourceTree = ""; }; - 15559E428759203AE92027639D25DDFB /* AMapSearchError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchError.h; path = AMapSearchKit.framework/Headers/AMapSearchError.h; sourceTree = ""; }; - 16C58D56065DD6020AE907F6CF2A03D3 /* MAGroundOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGroundOverlay.h; path = MAMapKit.framework/Headers/MAGroundOverlay.h; sourceTree = ""; }; - 1AAFE339FC8FD41F256F39D9921A0DF5 /* MARouteOverlayModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MARouteOverlayModel.h; path = MAMapKit.framework/Headers/MARouteOverlayModel.h; sourceTree = ""; }; - 1AB5B52027B67AC28237EBB53E108905 /* MJRefreshConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConfig.h; path = MJRefresh/MJRefreshConfig.h; sourceTree = ""; }; - 1B4385BFE0439C76FE32000A4D39E09E /* MAGeodesicPolyline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGeodesicPolyline.h; path = MAMapKit.framework/Headers/MAGeodesicPolyline.h; sourceTree = ""; }; + 02217EE365C32EE179ED6B3604311FA6 /* MAMapSnapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapSnapshot.h; path = MAMapKit.framework/Headers/MAMapSnapshot.h; sourceTree = ""; }; + 0249ED7AD58489423B69253BB3F68C77 /* AMap3DMap-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMap3DMap-NO-IDFA.release.xcconfig"; sourceTree = ""; }; + 03FD8F08A7E902C8304769A760AE03F8 /* MAPolylineRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolylineRenderer.h; path = MAMapKit.framework/Headers/MAPolylineRenderer.h; sourceTree = ""; }; + 0468C9EDD81C0FA55A1E114FD4F50888 /* AMapCommonObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapCommonObj.h; path = AMapSearchKit.framework/Headers/AMapCommonObj.h; sourceTree = ""; }; + 0560C72601DFB7648983A59E3A8630CF /* Pods-suixinkanTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkanTests-Info.plist"; sourceTree = ""; }; + 069E056FF5EF11FB955BE3C9637228BF /* Pods-suixinkan-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-suixinkan-acknowledgements.markdown"; sourceTree = ""; }; + 07893D47C6D034DEDA35BF43ECFA4F51 /* MALineDrawType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MALineDrawType.h; path = MAMapKit.framework/Headers/MALineDrawType.h; sourceTree = ""; }; + 0AF6857527573BF3900E9CE0D97AB4FB /* MAArc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAArc.h; path = MAMapKit.framework/Headers/MAArc.h; sourceTree = ""; }; + 0D5531D415C0B9769DB23D75594BE144 /* MAConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAConfig.h; path = MAMapKit.framework/Headers/MAConfig.h; sourceTree = ""; }; + 0ECDD3A14AC7808A63FC560ECEFCD281 /* AMapURLSearchConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapURLSearchConfig.h; path = AMapFoundationKit.framework/Headers/AMapURLSearchConfig.h; sourceTree = ""; }; + 0ED959CB4F20C5C790E17D06A1B5C712 /* AMapUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapUtility.h; path = AMapFoundationKit.framework/Headers/AMapUtility.h; sourceTree = ""; }; + 12777F62398EA80224A2785DDEC3095A /* MATouchPoi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATouchPoi.h; path = MAMapKit.framework/Headers/MATouchPoi.h; sourceTree = ""; }; + 13A233A7815D5407B79718473F81E3B9 /* AMapFoundationConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapFoundationConst.h; path = AMapFoundationKit.framework/Headers/AMapFoundationConst.h; sourceTree = ""; }; + 179E8DCDE90BB09A93B5A20D14A2AF9F /* MAMapAccessibilityIdentifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapAccessibilityIdentifier.h; path = MAMapKit.framework/Headers/MAMapAccessibilityIdentifier.h; sourceTree = ""; }; + 17AAC989FB56464455A9E8ED437E4E8B /* AMap.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = AMap.bundle; path = MAMapKit.framework/AMap.bundle; sourceTree = ""; }; 1B7465A72120AF417FD5F1F34AD33AD4 /* Pods-suixinkanTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-suixinkanTests"; path = Pods_suixinkanTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1B930FD4BB265C9B832C63EB6C18A244 /* MAAnimatedAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnimatedAnnotation.h; path = MAMapKit.framework/Headers/MAAnimatedAnnotation.h; sourceTree = ""; }; - 1BDF995E8D7341F565EA215194660CC7 /* MACustomBuildingOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACustomBuildingOverlayRenderer.h; path = MAMapKit.framework/Headers/MACustomBuildingOverlayRenderer.h; sourceTree = ""; }; - 1CF8E839440EBA2ED0ED264FE13D5827 /* MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJRefresh-dummy.m"; sourceTree = ""; }; - 1D1227D5C439B4A7C6B3CA5B94B6BFE5 /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; - 2030C0A1678DD735DE5A068524C428D0 /* MJRefreshStateTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h; sourceTree = ""; }; - 21397BCD20ECAE0D5DC45E00B1022122 /* Pods-suixinkan-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-suixinkan-acknowledgements.markdown"; sourceTree = ""; }; - 2397BECB688E68175A59B667612A8332 /* MAHeatMapVectorOverlayRender.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorOverlayRender.h; path = MAMapKit.framework/Headers/MAHeatMapVectorOverlayRender.h; sourceTree = ""; }; - 26EA4A1E2F6B0470D7EB7BA9B9874EFE /* MAGeometry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGeometry.h; path = MAMapKit.framework/Headers/MAGeometry.h; sourceTree = ""; }; - 2796E91E96174551DBC623E1561F2FFB /* MALineDrawType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MALineDrawType.h; path = MAMapKit.framework/Headers/MALineDrawType.h; sourceTree = ""; }; - 281D756A5D80919F92DC593748BFF12D /* MJRefreshBackFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackFooter.m; path = MJRefresh/Base/MJRefreshBackFooter.m; sourceTree = ""; }; - 2A4086AD383BE916A71549746D7E5B1F /* UICollectionViewLayout+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionViewLayout+MJRefresh.m"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.m"; sourceTree = ""; }; - 2B58225B825CAD86A961027F68A2994E /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; - 2B656CB39B267965926C558095D6C5B7 /* AMapSearch-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapSearch-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; - 2C3764593873EDDAF8A086E39CA140D4 /* AMapFoundationKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapFoundationKit.h; path = AMapFoundationKit.framework/Headers/AMapFoundationKit.h; sourceTree = ""; }; - 2C6D3B24B71E8DF66D8D5573228AC038 /* MAMultiPolyline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPolyline.h; path = MAMapKit.framework/Headers/MAMultiPolyline.h; sourceTree = ""; }; - 2C923D199287338D8EF1835690839E9F /* MAMultiColoredPolylineRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiColoredPolylineRenderer.h; path = MAMapKit.framework/Headers/MAMultiColoredPolylineRenderer.h; sourceTree = ""; }; - 2FAEF46266BFEDD00FC91317EE4C609D /* AMapSearchObjV1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchObjV1.h; path = AMapSearchKit.framework/Headers/AMapSearchObjV1.h; sourceTree = ""; }; - 303814ECB7988A2E7E6C6C1609D73152 /* AMapURLSearch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapURLSearch.h; path = AMapFoundationKit.framework/Headers/AMapURLSearch.h; sourceTree = ""; }; - 30521482B763363B7C1BB8B78D626408 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoFooter.h; path = MJRefresh/Base/MJRefreshAutoFooter.h; sourceTree = ""; }; - 3083A912594497E0C9586F53618F7E30 /* MAPolylineRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolylineRenderer.h; path = MAMapKit.framework/Headers/MAPolylineRenderer.h; sourceTree = ""; }; - 315F56C3CD0C71F1987D696DA36F06AB /* MAArc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAArc.h; path = MAMapKit.framework/Headers/MAArc.h; sourceTree = ""; }; - 3173CBEC8CF7AA8EA006088941718CD5 /* Pods-suixinkanTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkanTests-acknowledgements.plist"; sourceTree = ""; }; - 32FC09D68AB0CA94C02B873431DAA4D8 /* AMapLocationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationManager.h; path = AMapLocationKit.framework/Headers/AMapLocationManager.h; sourceTree = ""; }; - 356236C33AC42A97A769B6475FC06B82 /* MAMapSnapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapSnapshot.h; path = MAMapKit.framework/Headers/MAMapSnapshot.h; sourceTree = ""; }; - 35E8DA384C088C15B439F26F0A3305FD /* MAPoiFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPoiFilter.h; path = MAMapKit.framework/Headers/MAPoiFilter.h; sourceTree = ""; }; - 37B17973B8B0E935D23A94470AB95C07 /* Pods-suixinkanTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-suixinkanTests-dummy.m"; sourceTree = ""; }; + 1C389829A9B7304C4C2F81E54D9281D4 /* AMapFoundation-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapFoundation-NO-IDFA.release.xcconfig"; sourceTree = ""; }; + 1DE51701473D3BA56631874E64FC3532 /* MAMapView+Resource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MAMapView+Resource.h"; path = "MAMapKit.framework/Headers/MAMapView+Resource.h"; sourceTree = ""; }; + 1E50FFF4B5D963DD2E1C163D0947C39D /* AMapSearchError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchError.h; path = AMapSearchKit.framework/Headers/AMapSearchError.h; sourceTree = ""; }; + 1EA143C71ADA11765E3423D6CB84DFB1 /* MAParticleOverlayOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAParticleOverlayOptions.h; path = MAMapKit.framework/Headers/MAParticleOverlayOptions.h; sourceTree = ""; }; + 1F1538E70E795808722BB28314B33572 /* MAGroundOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGroundOverlayRenderer.h; path = MAMapKit.framework/Headers/MAGroundOverlayRenderer.h; sourceTree = ""; }; + 20C221C3FAE6488F4EDEED818C44CDD6 /* AMapSearch-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapSearch-NO-IDFA.release.xcconfig"; sourceTree = ""; }; + 21EABC2335DC8A3C9920D03EED819DFD /* AMapFoundation-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapFoundation-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; + 22F94D43169697717AD7FD93BCA5C0A5 /* MAMultiPointOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPointOverlayRenderer.h; path = MAMapKit.framework/Headers/MAMultiPointOverlayRenderer.h; sourceTree = ""; }; + 25DA44E4FBED19BB0DF9F88A248F3F5E /* MATraceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATraceManager.h; path = MAMapKit.framework/Headers/MATraceManager.h; sourceTree = ""; }; + 27A965981C98B78C7BA5DBBACF3F5880 /* MAGeodesicPolyline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGeodesicPolyline.h; path = MAMapKit.framework/Headers/MAGeodesicPolyline.h; sourceTree = ""; }; + 28CB70E49423CA534786DD30DDCE03EE /* AMapSearchKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AMapSearchKit.framework; sourceTree = ""; }; + 2D9188A08F7F86FBF3EBB3CD93699D53 /* Pods-suixinkan.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkan.release.xcconfig"; sourceTree = ""; }; + 2EF2D2E9F471DCE665CE4D9D428E1C43 /* AMapGeoFenceRegionObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapGeoFenceRegionObj.h; path = AMapLocationKit.framework/Headers/AMapGeoFenceRegionObj.h; sourceTree = ""; }; + 3111A6CB446BBF0DFF881240B823AB8E /* MAOfflineCity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineCity.h; path = MAMapKit.framework/Headers/MAOfflineCity.h; sourceTree = ""; }; + 36F27DFF7FB3BD0B40B252FB6DE17AA4 /* AMapSearchKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchKit.h; path = AMapSearchKit.framework/Headers/AMapSearchKit.h; sourceTree = ""; }; + 37B4827DA9827B3D0B8EC89F522F92B3 /* MAAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnnotation.h; path = MAMapKit.framework/Headers/MAAnnotation.h; sourceTree = ""; }; 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 38B439905141423BD2DADBBD5EFC72DE /* Pods-suixinkanTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkanTests.release.xcconfig"; sourceTree = ""; }; - 393F7B38F425E6CC96A1B00592D6DA75 /* MAMapView+Resource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MAMapView+Resource.h"; path = "MAMapKit.framework/Headers/MAMapView+Resource.h"; sourceTree = ""; }; - 3A00DF16F62C279F4A81744AB2C8C5AE /* MATileOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATileOverlayRenderer.h; path = MAMapKit.framework/Headers/MATileOverlayRenderer.h; sourceTree = ""; }; - 3C78972F4554CA8A9FDD2AA929AC5499 /* MAOfflineProvince.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineProvince.h; path = MAMapKit.framework/Headers/MAOfflineProvince.h; sourceTree = ""; }; - 3D96367E47A366B71AE236D5B0453C6E /* MACircleRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACircleRenderer.h; path = MAMapKit.framework/Headers/MACircleRenderer.h; sourceTree = ""; }; - 3FE5CE5609C08A51C59D0BC7714A4D47 /* MJRefreshBackGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackGifFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h; sourceTree = ""; }; - 407917BF4692971CEABC71A5FD299787 /* MAAnnotationView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnnotationView.h; path = MAMapKit.framework/Headers/MAAnnotationView.h; sourceTree = ""; }; - 41654620E68E97EF25361CA3CA3EEE06 /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefresh/Base/MJRefreshFooter.h; sourceTree = ""; }; - 41912F06D7E7D5A38C37B6E577D9D059 /* Pods-suixinkan-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-suixinkan-frameworks.sh"; sourceTree = ""; }; - 41B423EED53D5FCECC2E3EBDE3C439A1 /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; - 434092C132A5B63621FAD580FF82D0A7 /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefresh/MJRefreshConst.h; sourceTree = ""; }; - 479F7170D4A47A740EF8675398E5EA41 /* MABaseEngineOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MABaseEngineOverlay.h; path = MAMapKit.framework/Headers/MABaseEngineOverlay.h; sourceTree = ""; }; - 47C9D7D67F0E2980F8FEA947D9E74227 /* UICollectionViewLayout+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionViewLayout+MJRefresh.h"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.h"; sourceTree = ""; }; - 490B69B5C348D4367AF5F227FA482776 /* MJRefreshStateHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateHeader.m; path = MJRefresh/Custom/Header/MJRefreshStateHeader.m; sourceTree = ""; }; - 49B5D8DD1CCE793F9D5113114AD2A582 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; - 4B59D66E4C28F170072DE77A083824F7 /* MATraceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATraceManager.h; path = MAMapKit.framework/Headers/MATraceManager.h; sourceTree = ""; }; - 4C4FD00BE1123C185F07C1FDA9F1ECC2 /* AMapSearchKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AMapSearchKit.framework; sourceTree = ""; }; - 4D85A34EC836480372B49DC09BB227EF /* MAMapView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapView.h; path = MAMapKit.framework/Headers/MAMapView.h; sourceTree = ""; }; - 4DB584A3F93E4FCCDEB06503D0A75616 /* MARouteOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MARouteOverlay.h; path = MAMapKit.framework/Headers/MARouteOverlay.h; sourceTree = ""; }; - 4E6C7D52A6CCCE379049FE947967F441 /* MAHeatMapVectorOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorOverlay.h; path = MAMapKit.framework/Headers/MAHeatMapVectorOverlay.h; sourceTree = ""; }; - 4E888C9D7D01770B0F1DE720E44ABC3B /* MJRefreshAutoStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoStateFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h; sourceTree = ""; }; - 4F00A70EF77AE057B5D3231D134DDBD2 /* MAUserLocationRepresentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAUserLocationRepresentation.h; path = MAMapKit.framework/Headers/MAUserLocationRepresentation.h; sourceTree = ""; }; - 507A47DAAD6358EECFC2286E971C215E /* MAParticleOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAParticleOverlay.h; path = MAMapKit.framework/Headers/MAParticleOverlay.h; sourceTree = ""; }; - 50DFF895D10A3B267303D82E51B50E81 /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefresh/Base/MJRefreshHeader.m; sourceTree = ""; }; - 511A44384A21156E702371258C38641A /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefresh/MJRefresh.h; sourceTree = ""; }; - 5164D4BBB00D3D7BB82D96A381D2A5C1 /* AMapFoundationVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapFoundationVersion.h; path = AMapFoundationKit.framework/Headers/AMapFoundationVersion.h; sourceTree = ""; }; - 51D0131A45D4EF399ED696EC0E432F17 /* MAPolygon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolygon.h; path = MAMapKit.framework/Headers/MAPolygon.h; sourceTree = ""; }; - 52A5A70614325B9002E369D7B735C716 /* MJRefreshStateHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateHeader.h; path = MJRefresh/Custom/Header/MJRefreshStateHeader.h; sourceTree = ""; }; - 547E2BB070A41800DA8456A17F7D43D8 /* AMapNearbyUploadInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapNearbyUploadInfo.h; path = AMapSearchKit.framework/Headers/AMapNearbyUploadInfo.h; sourceTree = ""; }; - 5545A81EF57444268EE3EA581C8CCECB /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; - 55E496B24E5804D652EE6D1800A07B03 /* AMapSearchAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchAPI.h; path = AMapSearchKit.framework/Headers/AMapSearchAPI.h; sourceTree = ""; }; - 569BD1C3159DE167886F2963AF89348E /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; - 56A7C668AF522770DA05AA61967EB8A3 /* MATraceLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATraceLocation.h; path = MAMapKit.framework/Headers/MATraceLocation.h; sourceTree = ""; }; - 57629F1D48C217EF6EBB75B1630298DC /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; - 5A5D1BE1351215B2227904B08017BC18 /* Pods-suixinkanTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-suixinkanTests.modulemap"; sourceTree = ""; }; - 5A9885F9ACFB8863730F6BFF6BB3ED6F /* MAMapKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapKit.h; path = MAMapKit.framework/Headers/MAMapKit.h; sourceTree = ""; }; - 5B6FE1BE92D481044CBF344D181F4EBF /* AMapLocationKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AMapLocationKit.framework; sourceTree = ""; }; + 38C9B733D70D2C1018E98375FEBB4D3E /* AMap3DMap-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMap3DMap-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; + 3957E91240141AA1172DDE08664C2FDE /* AMapNearbySearchManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapNearbySearchManager.h; path = AMapSearchKit.framework/Headers/AMapNearbySearchManager.h; sourceTree = ""; }; + 39C67574DA3D6A9D1EBE4C33C2D924A0 /* MAOfflineProvince.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineProvince.h; path = MAMapKit.framework/Headers/MAOfflineProvince.h; sourceTree = ""; }; + 3C5E590F8C1AFE192720D4655625290C /* MAGeometry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGeometry.h; path = MAMapKit.framework/Headers/MAGeometry.h; sourceTree = ""; }; + 3C987CC8FA3285C057154E3901A1B8C5 /* MAMultiTexturePolylineRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiTexturePolylineRenderer.h; path = MAMapKit.framework/Headers/MAMultiTexturePolylineRenderer.h; sourceTree = ""; }; + 3CE7B2EE0FE95BBD834825FA4D0571C5 /* Pods-suixinkanTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkanTests.debug.xcconfig"; sourceTree = ""; }; + 406C62ACD9BC253DEFA23D034208C225 /* AMapNearbyUploadInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapNearbyUploadInfo.h; path = AMapSearchKit.framework/Headers/AMapNearbyUploadInfo.h; sourceTree = ""; }; + 42B7C6D97C0A1D4EE779539A5BDC279E /* MAMapView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapView.h; path = MAMapKit.framework/Headers/MAMapView.h; sourceTree = ""; }; + 44674EC1944BB8CC20D1FB811A28DA3F /* Pods-suixinkan-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkan-acknowledgements.plist"; sourceTree = ""; }; + 466460A7D8FB47BEE17DEECC7A31C289 /* AMapFoundationKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AMapFoundationKit.framework; sourceTree = ""; }; + 479D2251F56CDCC803178FF0E21FD7B0 /* MAHeatMapTileOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapTileOverlay.h; path = MAMapKit.framework/Headers/MAHeatMapTileOverlay.h; sourceTree = ""; }; + 4ADB0704B3E2D4A27F9D4A31AE7D5CF0 /* AMapSearch-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapSearch-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; + 4B15671E344E6FB2D7F1962533AF5BDF /* MABaseOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MABaseOverlay.h; path = MAMapKit.framework/Headers/MABaseOverlay.h; sourceTree = ""; }; + 4C128DCFB0D3BD12C81266660101FEA5 /* MAPathShowRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPathShowRange.h; path = MAMapKit.framework/Headers/MAPathShowRange.h; sourceTree = ""; }; + 50416CD761E5B67B024889A9055280A1 /* AMapLocation-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapLocation-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; + 52C610AF7C0574F9ABF277E8E8FF9F4E /* AMapSearchVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchVersion.h; path = AMapSearchKit.framework/Headers/AMapSearchVersion.h; sourceTree = ""; }; + 5A773D058BB5E3714D3BD8A1316F9CDF /* MAOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOverlayRenderer.h; path = MAMapKit.framework/Headers/MAOverlayRenderer.h; sourceTree = ""; }; 5BD109278933E8C2F269E5DCEC3A5376 /* Pods-suixinkan */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-suixinkan"; path = Pods_suixinkan.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5CDE8C259BC065E1B0439447B1252C99 /* MACustomCalloutView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACustomCalloutView.h; path = MAMapKit.framework/Headers/MACustomCalloutView.h; sourceTree = ""; }; - 5FC2B9CB24015B1A4E7E51F2A8BF4648 /* MAPathShowRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPathShowRange.h; path = MAMapKit.framework/Headers/MAPathShowRange.h; sourceTree = ""; }; - 62CCE9A31EA86B6AA69227E0E25AC09D /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 641C5C6A474E625CE9316589E2270E66 /* AMapSearchObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchObj.h; path = AMapSearchKit.framework/Headers/AMapSearchObj.h; sourceTree = ""; }; - 655C7084A60741488C18B8F24B3D97B8 /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; - 660335F9EEB1C0586BB756A9BB4E574C /* MAHeatMapTileOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapTileOverlay.h; path = MAMapKit.framework/Headers/MAHeatMapTileOverlay.h; sourceTree = ""; }; - 66FC53FBC5F1CA4B85240B8EE1F77251 /* AMap3DMap-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMap3DMap-NO-IDFA.release.xcconfig"; sourceTree = ""; }; - 67B7CB4CBC7DAA9DD71077F5EA8A0F03 /* AMapFoundation-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapFoundation-NO-IDFA.release.xcconfig"; sourceTree = ""; }; - 6B2EAA3B807B65EFEDA370EB765D6FC8 /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; - 6B40BC31A39D7D0DF7A22952A74B6D06 /* MAPolygonRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolygonRenderer.h; path = MAMapKit.framework/Headers/MAPolygonRenderer.h; sourceTree = ""; }; - 6C70E88A48758B567F7C05DDD607C8A6 /* AMapFoundation-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapFoundation-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; - 7031EEC5F08BCA8AD8D81E1275787D67 /* MJRefreshBackStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackStateFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m; sourceTree = ""; }; - 71BA37E3DD83CB95CA0B8347B095F829 /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; - 72B5AE3C704A7632DFBFA60F5FCDDBE3 /* AMapLocation-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapLocation-NO-IDFA.release.xcconfig"; sourceTree = ""; }; - 73013CAB4D167A786A6554B05F0AB2E1 /* MJRefreshNormalTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m; sourceTree = ""; }; - 77944CCFDFCB2C611A128B13E8A1AFE7 /* MATileOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATileOverlay.h; path = MAMapKit.framework/Headers/MATileOverlay.h; sourceTree = ""; }; - 7970E185DCA1CE6D331C00CC66BFEAA3 /* Pods-suixinkan-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkan-acknowledgements.plist"; sourceTree = ""; }; - 7BC41D8CF2124391F34BE554B973219E /* AMapLocationVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationVersion.h; path = AMapLocationKit.framework/Headers/AMapLocationVersion.h; sourceTree = ""; }; - 7D3A386905C9A65EC03587267B90AD4D /* MAOfflineMapViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineMapViewController.h; path = MAMapKit.framework/Headers/MAOfflineMapViewController.h; sourceTree = ""; }; - 7D7B92668EB5A4C1D209F11543FC199F /* AMap3DMap-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMap3DMap-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; - 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MJRefresh-MJRefresh.Privacy"; path = MJRefresh.Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 7EBD886580089648C95FA50BFA2EC4A6 /* MAHeatMapVectorGridOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorGridOverlayRenderer.h; path = MAMapKit.framework/Headers/MAHeatMapVectorGridOverlayRenderer.h; sourceTree = ""; }; - 8001677E7E32E68BEBCE0CFDEE3B84B6 /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; - 81F4CE7454717F18CAE0AA9E7388A89E /* MAOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOverlay.h; path = MAMapKit.framework/Headers/MAOverlay.h; sourceTree = ""; }; - 861606D816E41ABB6A9A6A7836702762 /* MAMultiPointOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPointOverlayRenderer.h; path = MAMapKit.framework/Headers/MAMultiPointOverlayRenderer.h; sourceTree = ""; }; - 86EACB751BE0EBD6077C386440B17A17 /* MAMultiPointOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPointOverlay.h; path = MAMapKit.framework/Headers/MAMultiPointOverlay.h; sourceTree = ""; }; - 878559C369557711FEBFC84F446C3CA0 /* MAOverlayPathRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOverlayPathRenderer.h; path = MAMapKit.framework/Headers/MAOverlayPathRenderer.h; sourceTree = ""; }; - 87E63847BD0EC765700A34191528E16A /* MAOfflineItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItem.h; path = MAMapKit.framework/Headers/MAOfflineItem.h; sourceTree = ""; }; - 8AD77551BBE324D957E93425CDDE1576 /* AMapFoundationConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapFoundationConst.h; path = AMapFoundationKit.framework/Headers/AMapFoundationConst.h; sourceTree = ""; }; - 8B04E1C6538D1C855BDAFD2C7F1CBCD1 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackFooter.h; path = MJRefresh/Base/MJRefreshBackFooter.h; sourceTree = ""; }; - 8B385062BA1E587F382CA327B6C2CB16 /* AMapURLSearchType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapURLSearchType.h; path = AMapFoundationKit.framework/Headers/AMapURLSearchType.h; sourceTree = ""; }; - 8D878ED047D33FA3082CE6DB77514966 /* MJRefreshTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshTrailer.h; path = MJRefresh/Base/MJRefreshTrailer.h; sourceTree = ""; }; - 8DB9F697E059AD84BBE6DB6241D65A19 /* Pods-suixinkanTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-suixinkanTests-umbrella.h"; sourceTree = ""; }; - 8DC1D17AA22E3F30BEC1992D3A9C677B /* Pods-suixinkan.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-suixinkan.modulemap"; sourceTree = ""; }; - 8E126C7322D94BBD217EB1D1A973FDB9 /* MJRefreshAutoNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoNormalFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h; sourceTree = ""; }; - 8FC3A0B6583F5CDEAF30AD5131E7CD26 /* AMapNearbySearchManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapNearbySearchManager.h; path = AMapSearchKit.framework/Headers/AMapNearbySearchManager.h; sourceTree = ""; }; - 925902FC9C669D9561854D1667C48580 /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; - 9372BF76413CBE841868C3B9BED51F6B /* AMapGeoFenceRegionObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapGeoFenceRegionObj.h; path = AMapLocationKit.framework/Headers/AMapGeoFenceRegionObj.h; sourceTree = ""; }; - 950F5DF4CC9F1990F496C1FA1B51A3EB /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; - 9561EF743B1F673632A5C742351AF9B1 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; sourceTree = ""; }; - 964E9456908063A8BBBA753D2ABF534E /* MAAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnnotation.h; path = MAMapKit.framework/Headers/MAAnnotation.h; sourceTree = ""; }; - 97BAD9E47B49248B2119D1C3F6250FE7 /* MJRefreshNormalTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h; sourceTree = ""; }; - 97BDCFDBC64995B29C6C0E469BF8B9DB /* MAMapStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapStatus.h; path = MAMapKit.framework/Headers/MAMapStatus.h; sourceTree = ""; }; - 981AA3A188835E8705A105A86799212E /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefresh/Base/MJRefreshFooter.m; sourceTree = ""; }; - 995A1FE995BF8A3BB47436F3D05C8251 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoFooter.m; path = MJRefresh/Base/MJRefreshAutoFooter.m; sourceTree = ""; }; - 9C2BAC00F0740CF525DB7CAC5EA73C62 /* MAMapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MAMapKit.framework; sourceTree = ""; }; - 9D251D37879678420C2E21DB2DA7CDD1 /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; + 5C9770B675559EB4331810063B73DDC1 /* AMapLocation-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapLocation-NO-IDFA.release.xcconfig"; sourceTree = ""; }; + 5E7675B734E1C6CDF8668372E8F3B84F /* MAOfflineItemNationWide.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItemNationWide.h; path = MAMapKit.framework/Headers/MAOfflineItemNationWide.h; sourceTree = ""; }; + 5EB6A65D560051402A68177B80171225 /* MATraceLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATraceLocation.h; path = MAMapKit.framework/Headers/MATraceLocation.h; sourceTree = ""; }; + 60B893CFB4A7C6AD794D9DEE5E9B7547 /* MAParticleOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAParticleOverlayRenderer.h; path = MAMapKit.framework/Headers/MAParticleOverlayRenderer.h; sourceTree = ""; }; + 61B7C8006610229F8A3485704A3944CF /* Pods-suixinkan.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkan.debug.xcconfig"; sourceTree = ""; }; + 6489417A165C730B226E5B1D804A9408 /* MAMVTTileOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMVTTileOverlayRenderer.h; path = MAMapKit.framework/Headers/MAMVTTileOverlayRenderer.h; sourceTree = ""; }; + 64D4B407D067F530EFA572719A87A0CA /* MACircle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACircle.h; path = MAMapKit.framework/Headers/MACircle.h; sourceTree = ""; }; + 65EE9CD76EF8BD358253184A5FA8B069 /* Pods-suixinkanTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-suixinkanTests-umbrella.h"; sourceTree = ""; }; + 668A9B1E2D7B1954AE52ABE25041CC36 /* Pods-suixinkanTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-suixinkanTests-acknowledgements.markdown"; sourceTree = ""; }; + 670523F1C5175EE89771DB428EBEC517 /* MAMapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MAMapKit.framework; sourceTree = ""; }; + 670E3E43B240B76E406CCCF1D80A5EBF /* MATileOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATileOverlayRenderer.h; path = MAMapKit.framework/Headers/MATileOverlayRenderer.h; sourceTree = ""; }; + 6913B853941612CA8D01D460A848A478 /* MAHeatMapVectorGridOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorGridOverlayRenderer.h; path = MAMapKit.framework/Headers/MAHeatMapVectorGridOverlayRenderer.h; sourceTree = ""; }; + 6C13C8B921EDBEA42CC647D7F97802BC /* MAUserLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAUserLocation.h; path = MAMapKit.framework/Headers/MAUserLocation.h; sourceTree = ""; }; + 6E0300C9BA0A8C17B614ED5BD96E3E99 /* MAArcRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAArcRenderer.h; path = MAMapKit.framework/Headers/MAArcRenderer.h; sourceTree = ""; }; + 73F6CF8DCA15A7BB80B9BAC94CC46FA8 /* MATerrainOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATerrainOverlayRenderer.h; path = MAMapKit.framework/Headers/MATerrainOverlayRenderer.h; sourceTree = ""; }; + 79268FE9EDB48B09520AC8C51659656C /* MACustomBuildingOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACustomBuildingOverlayRenderer.h; path = MAMapKit.framework/Headers/MACustomBuildingOverlayRenderer.h; sourceTree = ""; }; + 7E8E07244D480795D3A2A96BD4F4C7E6 /* MAOfflineMapViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineMapViewController.h; path = MAMapKit.framework/Headers/MAOfflineMapViewController.h; sourceTree = ""; }; + 8492A7C1AEEA886EA3D51FE5804428A4 /* AMapServices.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapServices.h; path = AMapFoundationKit.framework/Headers/AMapServices.h; sourceTree = ""; }; + 8954141270608938A38FD68585BFD293 /* Pods-suixinkanTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-suixinkanTests.modulemap"; sourceTree = ""; }; + 8B129C7071E638EF8F02A4B3D4DF59EE /* MAUserLocationRepresentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAUserLocationRepresentation.h; path = MAMapKit.framework/Headers/MAUserLocationRepresentation.h; sourceTree = ""; }; + 8C64DEFEB1E7F2C66D9E36F704EB2EDA /* Pods-suixinkan.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-suixinkan.modulemap"; sourceTree = ""; }; + 930BB613D93B3F0743FE520201572148 /* Pods-suixinkanTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkanTests-acknowledgements.plist"; sourceTree = ""; }; + 94BA5B784A95AB959379147117CC2C89 /* MACustomBuildingOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACustomBuildingOverlay.h; path = MAMapKit.framework/Headers/MACustomBuildingOverlay.h; sourceTree = ""; }; + 94F4710F53F0DD7E15BC1E7AA10A2614 /* AMapGeoFenceError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapGeoFenceError.h; path = AMapLocationKit.framework/Headers/AMapGeoFenceError.h; sourceTree = ""; }; + 950D600CC053C2715B97DE0CAB30A00C /* MAAnnotationView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnnotationView.h; path = MAMapKit.framework/Headers/MAAnnotationView.h; sourceTree = ""; }; + 96166C2870775C1FA5506C14594664B3 /* MAOfflineItemCommonCity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItemCommonCity.h; path = MAMapKit.framework/Headers/MAOfflineItemCommonCity.h; sourceTree = ""; }; + 96AB96D3D117AC51019E2BF9D4826F59 /* MAShape.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAShape.h; path = MAMapKit.framework/Headers/MAShape.h; sourceTree = ""; }; + 99C67F83F400D9D89A9FA05B76CFD549 /* AMapURLSearch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapURLSearch.h; path = AMapFoundationKit.framework/Headers/AMapURLSearch.h; sourceTree = ""; }; + 9D86A178B3EBE1CD7076C6FFA26B5BAC /* MAMapCustomStyleOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapCustomStyleOptions.h; path = MAMapKit.framework/Headers/MAMapCustomStyleOptions.h; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9EC4984D77C13565AB9A20E002F820B8 /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefresh/Base/MJRefreshComponent.h; sourceTree = ""; }; - 9EF1A7E1F21502AA06F7F4CCEF91B56B /* AMapURLSearchConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapURLSearchConfig.h; path = AMapFoundationKit.framework/Headers/AMapURLSearchConfig.h; sourceTree = ""; }; - A3F941D7C356098ED7D2C1D3A5A782BC /* AMapLocationKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationKit.h; path = AMapLocationKit.framework/Headers/AMapLocationKit.h; sourceTree = ""; }; - A60233C7119F0105DB6C68E30CCC216F /* Pods-suixinkan-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-suixinkan-umbrella.h"; sourceTree = ""; }; - A6A3ABC34D5CA51948F7619021EEC414 /* Pods-suixinkan-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-suixinkan-dummy.m"; sourceTree = ""; }; - A710CAAD66C0DF6B1581557EAEB364AA /* MATouchPoi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATouchPoi.h; path = MAMapKit.framework/Headers/MATouchPoi.h; sourceTree = ""; }; - AAC4B7F927E219B1DFD11E5CD917F77E /* AMapCommonObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapCommonObj.h; path = AMapSearchKit.framework/Headers/AMapCommonObj.h; sourceTree = ""; }; - AC399AE9AF1014D507A51FFA131483A4 /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; - B1D214337580B2356480AE6AB94F983C /* AMapSearchKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchKit.h; path = AMapSearchKit.framework/Headers/AMapSearchKit.h; sourceTree = ""; }; - B2FC4BD3F2EC2A754F3E917878F6E7EC /* AMapLocationCommonObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationCommonObj.h; path = AMapLocationKit.framework/Headers/AMapLocationCommonObj.h; sourceTree = ""; }; - B309EBEA8D93176A9924EEF9714CA1C0 /* MJRefreshBackGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackGifFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m; sourceTree = ""; }; - B3A9B2740ED243A88FDF2D9AE77E9392 /* Pods-suixinkan.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkan.debug.xcconfig"; sourceTree = ""; }; - B41C4C6184ED489566C98EDA260CB769 /* AMapFoundationKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AMapFoundationKit.framework; sourceTree = ""; }; - B6C71E0E3B4E9C295BC85DD03D06B5AC /* MAPolyline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolyline.h; path = MAMapKit.framework/Headers/MAPolyline.h; sourceTree = ""; }; - B709D9CBE52E177D36AA159362770E30 /* AMapGeoFenceError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapGeoFenceError.h; path = AMapLocationKit.framework/Headers/AMapGeoFenceError.h; sourceTree = ""; }; - B78F5016096455E9A46839581544C77B /* MAMultiTexturePolylineRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiTexturePolylineRenderer.h; path = MAMapKit.framework/Headers/MAMultiTexturePolylineRenderer.h; sourceTree = ""; }; - B89D02337433B06608740E65EEE5FAC6 /* MAArcRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAArcRenderer.h; path = MAMapKit.framework/Headers/MAArcRenderer.h; sourceTree = ""; }; - B89ED17C01D05DECBE3EE6CFD0F850EB /* MAOfflineItemMunicipality.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItemMunicipality.h; path = MAMapKit.framework/Headers/MAOfflineItemMunicipality.h; sourceTree = ""; }; - BBAE241099C81D8EFB2A062A04F43105 /* Pods-suixinkan-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkan-Info.plist"; sourceTree = ""; }; - BC9ECF596FB5165D98C0F8FC4FE48515 /* AMap.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = AMap.bundle; path = MAMapKit.framework/AMap.bundle; sourceTree = ""; }; - BD29D57952BA6E6CF04E3C2A45E8C616 /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefresh/Custom/Header/MJRefreshGifHeader.h; sourceTree = ""; }; - C0311C83C8A4F175A21D8A662EF13B87 /* Pods-suixinkanTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkanTests-Info.plist"; sourceTree = ""; }; - C0949D614712DD9900DB683D00EAF68F /* MAOfflineItemCommonCity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItemCommonCity.h; path = MAMapKit.framework/Headers/MAOfflineItemCommonCity.h; sourceTree = ""; }; - C2787645FE031C111F8157CCFA6615A4 /* MAMVTTileOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMVTTileOverlay.h; path = MAMapKit.framework/Headers/MAMVTTileOverlay.h; sourceTree = ""; }; - C32F77F7675473EFFE4AAA8D0E7965BF /* MJRefreshAutoGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoGifFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h; sourceTree = ""; }; - C5294A108B71ADD7C9A4D6C3B5EEE037 /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefresh/Custom/Header/MJRefreshGifHeader.m; sourceTree = ""; }; - C63FC48F030AB76607C7C56F31AA58EC /* MAOfflineCity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineCity.h; path = MAMapKit.framework/Headers/MAOfflineCity.h; sourceTree = ""; }; - C7BD48AF75DEE87507967ACAEF174B33 /* MAConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAConfig.h; path = MAMapKit.framework/Headers/MAConfig.h; sourceTree = ""; }; - C98E7DE75AE0A21CFAB5A0646473431F /* AMapServices.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapServices.h; path = AMapFoundationKit.framework/Headers/AMapServices.h; sourceTree = ""; }; - CC03BA4946CDCB9CB09C6B21F6F4E42D /* MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJRefresh-Info.plist"; sourceTree = ""; }; - CC0D7016D0CD4D0171B1E212F0124A8A /* MAMapVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapVersion.h; path = MAMapKit.framework/Headers/MAMapVersion.h; sourceTree = ""; }; - CE08AE5F88748CDF0F1496822B015138 /* MJRefreshNormalHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalHeader.h; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.h; sourceTree = ""; }; - CF1BCEA3522F8B11C1D48FCB2F13EE6E /* MAMapCustomStyleOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapCustomStyleOptions.h; path = MAMapKit.framework/Headers/MAMapCustomStyleOptions.h; sourceTree = ""; }; - CF9B73BD5A7EF49C515CE054315DBC4E /* Pods-suixinkanTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkanTests.debug.xcconfig"; sourceTree = ""; }; - D03AEB9827714C23A990AEDD1B44E00E /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; - D0FE45307E1589134990F6D62D5D51D7 /* MJRefreshBackStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackStateFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h; sourceTree = ""; }; - D25CF9B9058EDB163B425FB48ADE017D /* AMapGeoFenceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapGeoFenceManager.h; path = AMapLocationKit.framework/Headers/AMapGeoFenceManager.h; sourceTree = ""; }; - D44CE51086ED6B496AC2823731959529 /* MAParticleOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAParticleOverlayRenderer.h; path = MAMapKit.framework/Headers/MAParticleOverlayRenderer.h; sourceTree = ""; }; - D4C67360D01FD4030DFC9FA7B265964B /* MAGroundOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGroundOverlayRenderer.h; path = MAMapKit.framework/Headers/MAGroundOverlayRenderer.h; sourceTree = ""; }; - D911B8DB93AFACCBF68114FC04A060E1 /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; - DA9B3B6A9284B28E0FC77B0BFC8486A4 /* MJRefreshBackNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackNormalFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m; sourceTree = ""; }; - DB458DF9FE4C818BDA198678A04781AF /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefresh/Base/MJRefreshHeader.h; sourceTree = ""; }; - DD757A3E6B7C18A13DC9B29F99CD9BED /* MACustomBuildingOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACustomBuildingOverlay.h; path = MAMapKit.framework/Headers/MACustomBuildingOverlay.h; sourceTree = ""; }; - DDBB82BD9D351997FD4929E7A2B6E25F /* MAMapAccessibilityIdentifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapAccessibilityIdentifier.h; path = MAMapKit.framework/Headers/MAMapAccessibilityIdentifier.h; sourceTree = ""; }; - E0603419C7ED70271FCFAB161D6626C4 /* AMapSearch-NO-IDFA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapSearch-NO-IDFA.release.xcconfig"; sourceTree = ""; }; - E24739B8C160151071234B9CB14E6F74 /* MAOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOverlayRenderer.h; path = MAMapKit.framework/Headers/MAOverlayRenderer.h; sourceTree = ""; }; - E38B574AE8D4235CEED222AA494F5B27 /* MAMVTTileOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMVTTileOverlayRenderer.h; path = MAMapKit.framework/Headers/MAMVTTileOverlayRenderer.h; sourceTree = ""; }; - E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MJRefresh; path = MJRefresh.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E9F04ADFC5DDC9481CE86CBF1CFBEC3B /* AMapLocation-NO-IDFA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AMapLocation-NO-IDFA.debug.xcconfig"; sourceTree = ""; }; - EB35D50C93B81507ABEAF0400F6409F7 /* MATerrainOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATerrainOverlay.h; path = MAMapKit.framework/Headers/MATerrainOverlay.h; sourceTree = ""; }; - ED423D7338F18C90E5B7A164ED98FC77 /* MAAnnotationMoveAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnnotationMoveAnimation.h; path = MAMapKit.framework/Headers/MAAnnotationMoveAnimation.h; sourceTree = ""; }; - F07E4AA3FC126251D1C103DA4A009663 /* MAOfflineMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineMap.h; path = MAMapKit.framework/Headers/MAOfflineMap.h; sourceTree = ""; }; - F10FEB9A91D6ACC8D51457FE6DAF9F79 /* MAUserLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAUserLocation.h; path = MAMapKit.framework/Headers/MAUserLocation.h; sourceTree = ""; }; - F1727CB2CB0DE18B0DCD9AA41866666D /* Pods-suixinkan-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-suixinkan-resources.sh"; sourceTree = ""; }; - F2B1FA2D6BC95A8F487B8587014D6F2C /* MAPointAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPointAnnotation.h; path = MAMapKit.framework/Headers/MAPointAnnotation.h; sourceTree = ""; }; - F3382EDA69E59A9E34944EBBD3D92753 /* MACircle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACircle.h; path = MAMapKit.framework/Headers/MACircle.h; sourceTree = ""; }; - F487C86481F172E7177E505BDEB7A3BB /* MAPinAnnotationView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPinAnnotationView.h; path = MAMapKit.framework/Headers/MAPinAnnotationView.h; sourceTree = ""; }; - F4DFB7CBF31FD9C7711987D012F18593 /* MJRefreshAutoNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoNormalFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m; sourceTree = ""; }; - F5338D394E610BCD3F8C72B229FB1A7F /* MJRefreshTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshTrailer.m; path = MJRefresh/Base/MJRefreshTrailer.m; sourceTree = ""; }; - F72A9BC98582AE44AB4225346E4882F1 /* MATerrainOverlayRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATerrainOverlayRenderer.h; path = MAMapKit.framework/Headers/MATerrainOverlayRenderer.h; sourceTree = ""; }; - F73EBF0DB8CE31E9D2F94B878D6B673E /* MAShape.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAShape.h; path = MAMapKit.framework/Headers/MAShape.h; sourceTree = ""; }; - F8875F775103851947F9747E7152ECCE /* MAHeatMapVectorGridOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorGridOverlay.h; path = MAMapKit.framework/Headers/MAHeatMapVectorGridOverlay.h; sourceTree = ""; }; - F92F6571B0D9AF830EC38EC3D3FE21C6 /* MAIndoorInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAIndoorInfo.h; path = MAMapKit.framework/Headers/MAIndoorInfo.h; sourceTree = ""; }; - FABA86169032152A7B6FF54D106192AD /* AMapUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapUtility.h; path = AMapFoundationKit.framework/Headers/AMapUtility.h; sourceTree = ""; }; - FB82B73F335E8C0C366798262D7A17B6 /* MAParticleOverlayOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAParticleOverlayOptions.h; path = MAMapKit.framework/Headers/MAParticleOverlayOptions.h; sourceTree = ""; }; - FF643440CE0161152CE9F37F727738DF /* MAMultiPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPoint.h; path = MAMapKit.framework/Headers/MAMultiPoint.h; sourceTree = ""; }; - FFCE7657A94B976454ACDE4B4AAC05EC /* MJRefreshBackNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackNormalFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h; sourceTree = ""; }; + 9EABEC92964633D02091EEB81DAC2A28 /* Pods-suixinkan-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-suixinkan-resources.sh"; sourceTree = ""; }; + A1505B28F867C60BE3D9A63585CE1479 /* MAMultiColoredPolylineRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiColoredPolylineRenderer.h; path = MAMapKit.framework/Headers/MAMultiColoredPolylineRenderer.h; sourceTree = ""; }; + A1C2AE0D141F894C0C841BDB91EA7784 /* Pods-suixinkanTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-suixinkanTests.release.xcconfig"; sourceTree = ""; }; + A6E2E98A47908F30D4B4EE96DE85B3BF /* MAMultiPolyline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPolyline.h; path = MAMapKit.framework/Headers/MAMultiPolyline.h; sourceTree = ""; }; + A823DCD9CB1E9FA604904B2963387CB2 /* AMapLocationVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationVersion.h; path = AMapLocationKit.framework/Headers/AMapLocationVersion.h; sourceTree = ""; }; + AACDB0C84FA62EBA5CD006122428E894 /* MAParticleOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAParticleOverlay.h; path = MAMapKit.framework/Headers/MAParticleOverlay.h; sourceTree = ""; }; + ADFEE7DB708FDF6C57C1799A67FF465E /* AMapSearchAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchAPI.h; path = AMapSearchKit.framework/Headers/AMapSearchAPI.h; sourceTree = ""; }; + AE998C161FD292A69FA3480332FE8E94 /* MAIndoorInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAIndoorInfo.h; path = MAMapKit.framework/Headers/MAIndoorInfo.h; sourceTree = ""; }; + B06D674932EE56F5658143A81D819C4E /* MAHeatMapVectorOverlayRender.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorOverlayRender.h; path = MAMapKit.framework/Headers/MAHeatMapVectorOverlayRender.h; sourceTree = ""; }; + B40D257CE33940958FDB368C92634D45 /* MAOfflineItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItem.h; path = MAMapKit.framework/Headers/MAOfflineItem.h; sourceTree = ""; }; + B5A81E7F9BCF713C6B40924387EF7A25 /* MAPointAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPointAnnotation.h; path = MAMapKit.framework/Headers/MAPointAnnotation.h; sourceTree = ""; }; + B7401B852E9ED119C83E93DE45E06560 /* AMapSearchObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchObj.h; path = AMapSearchKit.framework/Headers/AMapSearchObj.h; sourceTree = ""; }; + B890308220586EABC27EA0E6CFC1DFD2 /* AMapURLSearchType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapURLSearchType.h; path = AMapFoundationKit.framework/Headers/AMapURLSearchType.h; sourceTree = ""; }; + BAD44B63C8224A9B7695A6588497FE42 /* MAMultiPointOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPointOverlay.h; path = MAMapKit.framework/Headers/MAMultiPointOverlay.h; sourceTree = ""; }; + BBC4E88072A58FC7DD14D5BC2316725E /* Pods-suixinkanTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-suixinkanTests-dummy.m"; sourceTree = ""; }; + BD0ECDCE9B3838DE3652729396548862 /* MATileOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATileOverlay.h; path = MAMapKit.framework/Headers/MATileOverlay.h; sourceTree = ""; }; + BF228B17BC7260C40143BD13BD131504 /* Pods-suixinkan-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-suixinkan-dummy.m"; sourceTree = ""; }; + BF5B01EA8038304B63E8140D0E4CEC6E /* MARouteOverlayModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MARouteOverlayModel.h; path = MAMapKit.framework/Headers/MARouteOverlayModel.h; sourceTree = ""; }; + C2E13C3E887C09076D7A7C1A9909F130 /* MAPinAnnotationView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPinAnnotationView.h; path = MAMapKit.framework/Headers/MAPinAnnotationView.h; sourceTree = ""; }; + CA74F811F64E6F8E4EAE1DF86A23AC55 /* AMapSearchObjV1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapSearchObjV1.h; path = AMapSearchKit.framework/Headers/AMapSearchObjV1.h; sourceTree = ""; }; + CB890D7ECF0331820F5D5B21DA943E35 /* MATerrainOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MATerrainOverlay.h; path = MAMapKit.framework/Headers/MATerrainOverlay.h; sourceTree = ""; }; + CD9CA392D76E4DD502C6408386883A69 /* AMapFoundationVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapFoundationVersion.h; path = AMapFoundationKit.framework/Headers/AMapFoundationVersion.h; sourceTree = ""; }; + CDDE621D2E71DF0D01E579E60EBEACC0 /* AMapLocationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationManager.h; path = AMapLocationKit.framework/Headers/AMapLocationManager.h; sourceTree = ""; }; + CE36A961B0F78784EC9BFE7F48C84F82 /* Pods-suixinkan-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-suixinkan-umbrella.h"; sourceTree = ""; }; + D0CE0BC52229780EEEDAF90A0ECB322E /* AMapGeoFenceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapGeoFenceManager.h; path = AMapLocationKit.framework/Headers/AMapGeoFenceManager.h; sourceTree = ""; }; + D1817476C572138439BB2E13E8C45096 /* MAAnnotationMoveAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnnotationMoveAnimation.h; path = MAMapKit.framework/Headers/MAAnnotationMoveAnimation.h; sourceTree = ""; }; + D1C1468F3C5D7069B2AEE5D4CB1FC20A /* MAMapVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapVersion.h; path = MAMapKit.framework/Headers/MAMapVersion.h; sourceTree = ""; }; + D49628F6F87CD3F4A82F10BBA92C44A3 /* Pods-suixinkan-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-suixinkan-Info.plist"; sourceTree = ""; }; + D6116CC1F5E44C61DB36552FC8391D07 /* MABaseEngineOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MABaseEngineOverlay.h; path = MAMapKit.framework/Headers/MABaseEngineOverlay.h; sourceTree = ""; }; + D6E22522A6BBAC1BB10D1D328E2B4D78 /* MAMVTTileOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMVTTileOverlay.h; path = MAMapKit.framework/Headers/MAMVTTileOverlay.h; sourceTree = ""; }; + D713759A92D8BCC29CD7DC3CFD289395 /* MAPoiFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPoiFilter.h; path = MAMapKit.framework/Headers/MAPoiFilter.h; sourceTree = ""; }; + D7AECDC4049F1B7A0627C5CBE9EEB801 /* MAHeatMapVectorOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorOverlay.h; path = MAMapKit.framework/Headers/MAHeatMapVectorOverlay.h; sourceTree = ""; }; + D8FF9D3CA86B49A09EB91B1D8BB3B2E6 /* MAMultiPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMultiPoint.h; path = MAMapKit.framework/Headers/MAMultiPoint.h; sourceTree = ""; }; + DC6E025679FD5E5AA0ECAC4882CC6A4B /* MAMapKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapKit.h; path = MAMapKit.framework/Headers/MAMapKit.h; sourceTree = ""; }; + DD864541CD57A8A888316FAC4E5D07D9 /* AMapLocationRegionObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationRegionObj.h; path = AMapLocationKit.framework/Headers/AMapLocationRegionObj.h; sourceTree = ""; }; + DDC40C79056DF949D26DF6A7E6B6B2B0 /* MAPolygonRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolygonRenderer.h; path = MAMapKit.framework/Headers/MAPolygonRenderer.h; sourceTree = ""; }; + E671EF7D12D06CC20EE69DD9DB2529F5 /* MAPolygon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolygon.h; path = MAMapKit.framework/Headers/MAPolygon.h; sourceTree = ""; }; + E6A86446AD4439F02315529F70367138 /* MAOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOverlay.h; path = MAMapKit.framework/Headers/MAOverlay.h; sourceTree = ""; }; + E93BF19421F945A744EC8B82704CD713 /* MAPolyline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAPolyline.h; path = MAMapKit.framework/Headers/MAPolyline.h; sourceTree = ""; }; + E97596E60F23912E556FFE9431FEFF16 /* MAOfflineMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineMap.h; path = MAMapKit.framework/Headers/MAOfflineMap.h; sourceTree = ""; }; + EA2992EF84EEFF605B81D7CEBE1207FF /* MAOfflineItemMunicipality.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOfflineItemMunicipality.h; path = MAMapKit.framework/Headers/MAOfflineItemMunicipality.h; sourceTree = ""; }; + EAEB80D667FF0829CAB9E80A2C05B388 /* AMapLocationCommonObj.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationCommonObj.h; path = AMapLocationKit.framework/Headers/AMapLocationCommonObj.h; sourceTree = ""; }; + EC4822E11358118DBE26CAC71CE026AC /* AMapLocationKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AMapLocationKit.framework; sourceTree = ""; }; + EC9CB2A859C74253A5649F90F3AD668D /* MARouteOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MARouteOverlay.h; path = MAMapKit.framework/Headers/MARouteOverlay.h; sourceTree = ""; }; + F0BE2E0E4D233B2CAF830194D40CBD6C /* MAMapStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAMapStatus.h; path = MAMapKit.framework/Headers/MAMapStatus.h; sourceTree = ""; }; + F0C1BB90FB493C30623689797FC95F72 /* MAGroundOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAGroundOverlay.h; path = MAMapKit.framework/Headers/MAGroundOverlay.h; sourceTree = ""; }; + F0EFD4A4C0F35A4984D086732BC38199 /* AMapLocationKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapLocationKit.h; path = AMapLocationKit.framework/Headers/AMapLocationKit.h; sourceTree = ""; }; + F1B8AC0FA0AFA598092BC556A736982F /* MAOverlayPathRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAOverlayPathRenderer.h; path = MAMapKit.framework/Headers/MAOverlayPathRenderer.h; sourceTree = ""; }; + F2A22B8C07490BCAE6D234EBD6D65496 /* MACustomCalloutView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACustomCalloutView.h; path = MAMapKit.framework/Headers/MACustomCalloutView.h; sourceTree = ""; }; + F89BFD8BE9C6DD26936552EE2B1A9507 /* MAAnimatedAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAAnimatedAnnotation.h; path = MAMapKit.framework/Headers/MAAnimatedAnnotation.h; sourceTree = ""; }; + FAF21049EDA17C2F8A5D890B2C1322FD /* AMapFoundationKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AMapFoundationKit.h; path = AMapFoundationKit.framework/Headers/AMapFoundationKit.h; sourceTree = ""; }; + FD7E4B4F0EC7855FB40B09A2B2D53F92 /* MAHeatMapVectorGridOverlay.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MAHeatMapVectorGridOverlay.h; path = MAMapKit.framework/Headers/MAHeatMapVectorGridOverlay.h; sourceTree = ""; }; + FFAEB0B8447466ACC4348084500EA7D1 /* MACircleRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MACircleRenderer.h; path = MAMapKit.framework/Headers/MACircleRenderer.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 11690A588400BBB164423D5F86311C35 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 83A4F2816C1B3F072E1A26A34C3BC4AC /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5E0D0C50A7A873544D16A5F9C04AB995 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C7D17875E874285B6ACB1C9AE2BA5FFD /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 880E41AE438415E959603EC5884F97CB /* Frameworks */ = { + F76C05B3CCA2152BC55E3D3995D922D9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + FE0C74C01E8F98ADE1ECDE8206972D03 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -419,326 +273,271 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 03B6E08AD4E00EDA816D86E493F33C0A /* Frameworks */ = { + 136B3F60DD26735EE8FF544893CF6CA8 /* AMapLocation-NO-IDFA */ = { isa = PBXGroup; children = ( - 4C4FD00BE1123C185F07C1FDA9F1ECC2 /* AMapSearchKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 06FC11260001589A2237273CF11C079C /* Pods-suixinkanTests */ = { - isa = PBXGroup; - children = ( - 5A5D1BE1351215B2227904B08017BC18 /* Pods-suixinkanTests.modulemap */, - 01003F931713782781BF6BB014711F27 /* Pods-suixinkanTests-acknowledgements.markdown */, - 3173CBEC8CF7AA8EA006088941718CD5 /* Pods-suixinkanTests-acknowledgements.plist */, - 37B17973B8B0E935D23A94470AB95C07 /* Pods-suixinkanTests-dummy.m */, - C0311C83C8A4F175A21D8A662EF13B87 /* Pods-suixinkanTests-Info.plist */, - 8DB9F697E059AD84BBE6DB6241D65A19 /* Pods-suixinkanTests-umbrella.h */, - CF9B73BD5A7EF49C515CE054315DBC4E /* Pods-suixinkanTests.debug.xcconfig */, - 38B439905141423BD2DADBBD5EFC72DE /* Pods-suixinkanTests.release.xcconfig */, - ); - name = "Pods-suixinkanTests"; - path = "Target Support Files/Pods-suixinkanTests"; - sourceTree = ""; - }; - 0F73EBD4BC325D7711C71AD1A412B7B5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 9C2BAC00F0740CF525DB7CAC5EA73C62 /* MAMapKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 146B3F310D10D5B3AC61E0E2FBEBD5DE /* Support Files */ = { - isa = PBXGroup; - children = ( - 49B5D8DD1CCE793F9D5113114AD2A582 /* MJRefresh.modulemap */, - 1CF8E839440EBA2ED0ED264FE13D5827 /* MJRefresh-dummy.m */, - CC03BA4946CDCB9CB09C6B21F6F4E42D /* MJRefresh-Info.plist */, - 141DFD00F58AA3D0128125F76718B57F /* MJRefresh-prefix.pch */, - D911B8DB93AFACCBF68114FC04A060E1 /* MJRefresh-umbrella.h */, - 2B58225B825CAD86A961027F68A2994E /* MJRefresh.debug.xcconfig */, - 1D1227D5C439B4A7C6B3CA5B94B6BFE5 /* MJRefresh.release.xcconfig */, - 9561EF743B1F673632A5C742351AF9B1 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/MJRefresh"; - sourceTree = ""; - }; - 18160A91BB2A19B0F666BE748D2F02B7 /* Support Files */ = { - isa = PBXGroup; - children = ( - 6C70E88A48758B567F7C05DDD607C8A6 /* AMapFoundation-NO-IDFA.debug.xcconfig */, - 67B7CB4CBC7DAA9DD71077F5EA8A0F03 /* AMapFoundation-NO-IDFA.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/AMapFoundation-NO-IDFA"; - sourceTree = ""; - }; - 33F808A5E11C924EC96AE95B4ABF9CEC /* Support Files */ = { - isa = PBXGroup; - children = ( - 2B656CB39B267965926C558095D6C5B7 /* AMapSearch-NO-IDFA.debug.xcconfig */, - E0603419C7ED70271FCFAB161D6626C4 /* AMapSearch-NO-IDFA.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/AMapSearch-NO-IDFA"; - sourceTree = ""; - }; - 3C944850DB08702CECE42926BCAD04B7 /* Support Files */ = { - isa = PBXGroup; - children = ( - E9F04ADFC5DDC9481CE86CBF1CFBEC3B /* AMapLocation-NO-IDFA.debug.xcconfig */, - 72B5AE3C704A7632DFBFA60F5FCDDBE3 /* AMapLocation-NO-IDFA.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/AMapLocation-NO-IDFA"; - sourceTree = ""; - }; - 573E47C06AFD89DDCCD3A0BE08706B89 /* Resources */ = { - isa = PBXGroup; - children = ( - BC9ECF596FB5165D98C0F8FC4FE48515 /* AMap.bundle */, - ); - name = Resources; - sourceTree = ""; - }; - 6AF4AB2CD95191F647218D6A24F8669C /* Pods-suixinkan */ = { - isa = PBXGroup; - children = ( - 8DC1D17AA22E3F30BEC1992D3A9C677B /* Pods-suixinkan.modulemap */, - 21397BCD20ECAE0D5DC45E00B1022122 /* Pods-suixinkan-acknowledgements.markdown */, - 7970E185DCA1CE6D331C00CC66BFEAA3 /* Pods-suixinkan-acknowledgements.plist */, - A6A3ABC34D5CA51948F7619021EEC414 /* Pods-suixinkan-dummy.m */, - 41912F06D7E7D5A38C37B6E577D9D059 /* Pods-suixinkan-frameworks.sh */, - BBAE241099C81D8EFB2A062A04F43105 /* Pods-suixinkan-Info.plist */, - F1727CB2CB0DE18B0DCD9AA41866666D /* Pods-suixinkan-resources.sh */, - A60233C7119F0105DB6C68E30CCC216F /* Pods-suixinkan-umbrella.h */, - B3A9B2740ED243A88FDF2D9AE77E9392 /* Pods-suixinkan.debug.xcconfig */, - 081A933139371B97D5ABFD37B065516E /* Pods-suixinkan.release.xcconfig */, - ); - name = "Pods-suixinkan"; - path = "Target Support Files/Pods-suixinkan"; - sourceTree = ""; - }; - 6E26A8372F0B92FF1B0179EB270E4022 /* Resources */ = { - isa = PBXGroup; - children = ( - 8001677E7E32E68BEBCE0CFDEE3B84B6 /* MJRefresh.bundle */, - 62CCE9A31EA86B6AA69227E0E25AC09D /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; - 7F3AD2B90B0B80C514A35486BB2A9FEA /* AMapLocation-NO-IDFA */ = { - isa = PBXGroup; - children = ( - B709D9CBE52E177D36AA159362770E30 /* AMapGeoFenceError.h */, - D25CF9B9058EDB163B425FB48ADE017D /* AMapGeoFenceManager.h */, - 9372BF76413CBE841868C3B9BED51F6B /* AMapGeoFenceRegionObj.h */, - B2FC4BD3F2EC2A754F3E917878F6E7EC /* AMapLocationCommonObj.h */, - A3F941D7C356098ED7D2C1D3A5A782BC /* AMapLocationKit.h */, - 32FC09D68AB0CA94C02B873431DAA4D8 /* AMapLocationManager.h */, - 06135C4E3D8CEE3E6B9606213747F3DD /* AMapLocationRegionObj.h */, - 7BC41D8CF2124391F34BE554B973219E /* AMapLocationVersion.h */, - C7AD15EDBDEAED2A18A0CE84F75C9F1D /* Frameworks */, - 3C944850DB08702CECE42926BCAD04B7 /* Support Files */, + 94F4710F53F0DD7E15BC1E7AA10A2614 /* AMapGeoFenceError.h */, + D0CE0BC52229780EEEDAF90A0ECB322E /* AMapGeoFenceManager.h */, + 2EF2D2E9F471DCE665CE4D9D428E1C43 /* AMapGeoFenceRegionObj.h */, + EAEB80D667FF0829CAB9E80A2C05B388 /* AMapLocationCommonObj.h */, + F0EFD4A4C0F35A4984D086732BC38199 /* AMapLocationKit.h */, + CDDE621D2E71DF0D01E579E60EBEACC0 /* AMapLocationManager.h */, + DD864541CD57A8A888316FAC4E5D07D9 /* AMapLocationRegionObj.h */, + A823DCD9CB1E9FA604904B2963387CB2 /* AMapLocationVersion.h */, + 8311A11FC14B9FA4BA1B0EFC4D05CACE /* Frameworks */, + 81C73A1D28B5BFA280DD9E341F4FE010 /* Support Files */, ); name = "AMapLocation-NO-IDFA"; path = "AMapLocation-NO-IDFA"; sourceTree = ""; }; - 818ECC7C7775F8B414791FE64DDD61C2 /* MJRefresh */ = { + 2650C708B244E6D36B6119EEE0BADFB6 /* Frameworks */ = { isa = PBXGroup; children = ( - 511A44384A21156E702371258C38641A /* MJRefresh.h */, - 30521482B763363B7C1BB8B78D626408 /* MJRefreshAutoFooter.h */, - 995A1FE995BF8A3BB47436F3D05C8251 /* MJRefreshAutoFooter.m */, - C32F77F7675473EFFE4AAA8D0E7965BF /* MJRefreshAutoGifFooter.h */, - 08BEFA5D20896D889C60B1BB73C348C4 /* MJRefreshAutoGifFooter.m */, - 8E126C7322D94BBD217EB1D1A973FDB9 /* MJRefreshAutoNormalFooter.h */, - F4DFB7CBF31FD9C7711987D012F18593 /* MJRefreshAutoNormalFooter.m */, - 4E888C9D7D01770B0F1DE720E44ABC3B /* MJRefreshAutoStateFooter.h */, - 6B2EAA3B807B65EFEDA370EB765D6FC8 /* MJRefreshAutoStateFooter.m */, - 8B04E1C6538D1C855BDAFD2C7F1CBCD1 /* MJRefreshBackFooter.h */, - 281D756A5D80919F92DC593748BFF12D /* MJRefreshBackFooter.m */, - 3FE5CE5609C08A51C59D0BC7714A4D47 /* MJRefreshBackGifFooter.h */, - B309EBEA8D93176A9924EEF9714CA1C0 /* MJRefreshBackGifFooter.m */, - FFCE7657A94B976454ACDE4B4AAC05EC /* MJRefreshBackNormalFooter.h */, - DA9B3B6A9284B28E0FC77B0BFC8486A4 /* MJRefreshBackNormalFooter.m */, - D0FE45307E1589134990F6D62D5D51D7 /* MJRefreshBackStateFooter.h */, - 7031EEC5F08BCA8AD8D81E1275787D67 /* MJRefreshBackStateFooter.m */, - 9EC4984D77C13565AB9A20E002F820B8 /* MJRefreshComponent.h */, - 033A496A62413DF226ADC1719939E4DC /* MJRefreshComponent.m */, - 1AB5B52027B67AC28237EBB53E108905 /* MJRefreshConfig.h */, - 655C7084A60741488C18B8F24B3D97B8 /* MJRefreshConfig.m */, - 434092C132A5B63621FAD580FF82D0A7 /* MJRefreshConst.h */, - 03388D61B1D3E062A4B713B0C5D98736 /* MJRefreshConst.m */, - 41654620E68E97EF25361CA3CA3EEE06 /* MJRefreshFooter.h */, - 981AA3A188835E8705A105A86799212E /* MJRefreshFooter.m */, - BD29D57952BA6E6CF04E3C2A45E8C616 /* MJRefreshGifHeader.h */, - C5294A108B71ADD7C9A4D6C3B5EEE037 /* MJRefreshGifHeader.m */, - DB458DF9FE4C818BDA198678A04781AF /* MJRefreshHeader.h */, - 50DFF895D10A3B267303D82E51B50E81 /* MJRefreshHeader.m */, - CE08AE5F88748CDF0F1496822B015138 /* MJRefreshNormalHeader.h */, - 950F5DF4CC9F1990F496C1FA1B51A3EB /* MJRefreshNormalHeader.m */, - 97BAD9E47B49248B2119D1C3F6250FE7 /* MJRefreshNormalTrailer.h */, - 73013CAB4D167A786A6554B05F0AB2E1 /* MJRefreshNormalTrailer.m */, - 52A5A70614325B9002E369D7B735C716 /* MJRefreshStateHeader.h */, - 490B69B5C348D4367AF5F227FA482776 /* MJRefreshStateHeader.m */, - 2030C0A1678DD735DE5A068524C428D0 /* MJRefreshStateTrailer.h */, - 41B423EED53D5FCECC2E3EBDE3C439A1 /* MJRefreshStateTrailer.m */, - 8D878ED047D33FA3082CE6DB77514966 /* MJRefreshTrailer.h */, - F5338D394E610BCD3F8C72B229FB1A7F /* MJRefreshTrailer.m */, - 57629F1D48C217EF6EBB75B1630298DC /* NSBundle+MJRefresh.h */, - D03AEB9827714C23A990AEDD1B44E00E /* NSBundle+MJRefresh.m */, - 47C9D7D67F0E2980F8FEA947D9E74227 /* UICollectionViewLayout+MJRefresh.h */, - 2A4086AD383BE916A71549746D7E5B1F /* UICollectionViewLayout+MJRefresh.m */, - 9D251D37879678420C2E21DB2DA7CDD1 /* UIScrollView+MJExtension.h */, - AC399AE9AF1014D507A51FFA131483A4 /* UIScrollView+MJExtension.m */, - 569BD1C3159DE167886F2963AF89348E /* UIScrollView+MJRefresh.h */, - 5545A81EF57444268EE3EA581C8CCECB /* UIScrollView+MJRefresh.m */, - 925902FC9C669D9561854D1667C48580 /* UIView+MJExtension.h */, - 71BA37E3DD83CB95CA0B8347B095F829 /* UIView+MJExtension.m */, - 6E26A8372F0B92FF1B0179EB270E4022 /* Resources */, - 146B3F310D10D5B3AC61E0E2FBEBD5DE /* Support Files */, + 466460A7D8FB47BEE17DEECC7A31C289 /* AMapFoundationKit.framework */, ); - name = MJRefresh; - path = MJRefresh; + name = Frameworks; sourceTree = ""; }; - 864FE91AA01AC5B2E6FFDA176A681BD2 /* AMap3DMap-NO-IDFA */ = { + 32648DEF59B7C80AEA4FD4F4C56E28E2 /* Support Files */ = { isa = PBXGroup; children = ( - 1B930FD4BB265C9B832C63EB6C18A244 /* MAAnimatedAnnotation.h */, - 964E9456908063A8BBBA753D2ABF534E /* MAAnnotation.h */, - ED423D7338F18C90E5B7A164ED98FC77 /* MAAnnotationMoveAnimation.h */, - 407917BF4692971CEABC71A5FD299787 /* MAAnnotationView.h */, - 315F56C3CD0C71F1987D696DA36F06AB /* MAArc.h */, - B89D02337433B06608740E65EEE5FAC6 /* MAArcRenderer.h */, - 479F7170D4A47A740EF8675398E5EA41 /* MABaseEngineOverlay.h */, - 0B071FB150EB0F80F1B6DDAADB9F3EA1 /* MABaseOverlay.h */, - F3382EDA69E59A9E34944EBBD3D92753 /* MACircle.h */, - 3D96367E47A366B71AE236D5B0453C6E /* MACircleRenderer.h */, - C7BD48AF75DEE87507967ACAEF174B33 /* MAConfig.h */, - DD757A3E6B7C18A13DC9B29F99CD9BED /* MACustomBuildingOverlay.h */, - 1BDF995E8D7341F565EA215194660CC7 /* MACustomBuildingOverlayRenderer.h */, - 5CDE8C259BC065E1B0439447B1252C99 /* MACustomCalloutView.h */, - 1B4385BFE0439C76FE32000A4D39E09E /* MAGeodesicPolyline.h */, - 26EA4A1E2F6B0470D7EB7BA9B9874EFE /* MAGeometry.h */, - 16C58D56065DD6020AE907F6CF2A03D3 /* MAGroundOverlay.h */, - D4C67360D01FD4030DFC9FA7B265964B /* MAGroundOverlayRenderer.h */, - 660335F9EEB1C0586BB756A9BB4E574C /* MAHeatMapTileOverlay.h */, - F8875F775103851947F9747E7152ECCE /* MAHeatMapVectorGridOverlay.h */, - 7EBD886580089648C95FA50BFA2EC4A6 /* MAHeatMapVectorGridOverlayRenderer.h */, - 4E6C7D52A6CCCE379049FE947967F441 /* MAHeatMapVectorOverlay.h */, - 2397BECB688E68175A59B667612A8332 /* MAHeatMapVectorOverlayRender.h */, - F92F6571B0D9AF830EC38EC3D3FE21C6 /* MAIndoorInfo.h */, - 2796E91E96174551DBC623E1561F2FFB /* MALineDrawType.h */, - DDBB82BD9D351997FD4929E7A2B6E25F /* MAMapAccessibilityIdentifier.h */, - CF1BCEA3522F8B11C1D48FCB2F13EE6E /* MAMapCustomStyleOptions.h */, - 5A9885F9ACFB8863730F6BFF6BB3ED6F /* MAMapKit.h */, - 356236C33AC42A97A769B6475FC06B82 /* MAMapSnapshot.h */, - 97BDCFDBC64995B29C6C0E469BF8B9DB /* MAMapStatus.h */, - CC0D7016D0CD4D0171B1E212F0124A8A /* MAMapVersion.h */, - 4D85A34EC836480372B49DC09BB227EF /* MAMapView.h */, - 393F7B38F425E6CC96A1B00592D6DA75 /* MAMapView+Resource.h */, - 2C923D199287338D8EF1835690839E9F /* MAMultiColoredPolylineRenderer.h */, - FF643440CE0161152CE9F37F727738DF /* MAMultiPoint.h */, - 86EACB751BE0EBD6077C386440B17A17 /* MAMultiPointOverlay.h */, - 861606D816E41ABB6A9A6A7836702762 /* MAMultiPointOverlayRenderer.h */, - 2C6D3B24B71E8DF66D8D5573228AC038 /* MAMultiPolyline.h */, - B78F5016096455E9A46839581544C77B /* MAMultiTexturePolylineRenderer.h */, - C2787645FE031C111F8157CCFA6615A4 /* MAMVTTileOverlay.h */, - E38B574AE8D4235CEED222AA494F5B27 /* MAMVTTileOverlayRenderer.h */, - C63FC48F030AB76607C7C56F31AA58EC /* MAOfflineCity.h */, - 87E63847BD0EC765700A34191528E16A /* MAOfflineItem.h */, - C0949D614712DD9900DB683D00EAF68F /* MAOfflineItemCommonCity.h */, - B89ED17C01D05DECBE3EE6CFD0F850EB /* MAOfflineItemMunicipality.h */, - 067553896ECDDC64822E77C0793C8D83 /* MAOfflineItemNationWide.h */, - F07E4AA3FC126251D1C103DA4A009663 /* MAOfflineMap.h */, - 7D3A386905C9A65EC03587267B90AD4D /* MAOfflineMapViewController.h */, - 3C78972F4554CA8A9FDD2AA929AC5499 /* MAOfflineProvince.h */, - 81F4CE7454717F18CAE0AA9E7388A89E /* MAOverlay.h */, - 878559C369557711FEBFC84F446C3CA0 /* MAOverlayPathRenderer.h */, - E24739B8C160151071234B9CB14E6F74 /* MAOverlayRenderer.h */, - 507A47DAAD6358EECFC2286E971C215E /* MAParticleOverlay.h */, - FB82B73F335E8C0C366798262D7A17B6 /* MAParticleOverlayOptions.h */, - D44CE51086ED6B496AC2823731959529 /* MAParticleOverlayRenderer.h */, - 5FC2B9CB24015B1A4E7E51F2A8BF4648 /* MAPathShowRange.h */, - F487C86481F172E7177E505BDEB7A3BB /* MAPinAnnotationView.h */, - 35E8DA384C088C15B439F26F0A3305FD /* MAPoiFilter.h */, - F2B1FA2D6BC95A8F487B8587014D6F2C /* MAPointAnnotation.h */, - 51D0131A45D4EF399ED696EC0E432F17 /* MAPolygon.h */, - 6B40BC31A39D7D0DF7A22952A74B6D06 /* MAPolygonRenderer.h */, - B6C71E0E3B4E9C295BC85DD03D06B5AC /* MAPolyline.h */, - 3083A912594497E0C9586F53618F7E30 /* MAPolylineRenderer.h */, - 4DB584A3F93E4FCCDEB06503D0A75616 /* MARouteOverlay.h */, - 1AAFE339FC8FD41F256F39D9921A0DF5 /* MARouteOverlayModel.h */, - F73EBF0DB8CE31E9D2F94B878D6B673E /* MAShape.h */, - EB35D50C93B81507ABEAF0400F6409F7 /* MATerrainOverlay.h */, - F72A9BC98582AE44AB4225346E4882F1 /* MATerrainOverlayRenderer.h */, - 77944CCFDFCB2C611A128B13E8A1AFE7 /* MATileOverlay.h */, - 3A00DF16F62C279F4A81744AB2C8C5AE /* MATileOverlayRenderer.h */, - A710CAAD66C0DF6B1581557EAEB364AA /* MATouchPoi.h */, - 56A7C668AF522770DA05AA61967EB8A3 /* MATraceLocation.h */, - 4B59D66E4C28F170072DE77A083824F7 /* MATraceManager.h */, - F10FEB9A91D6ACC8D51457FE6DAF9F79 /* MAUserLocation.h */, - 4F00A70EF77AE057B5D3231D134DDBD2 /* MAUserLocationRepresentation.h */, - 0F73EBD4BC325D7711C71AD1A412B7B5 /* Frameworks */, - 573E47C06AFD89DDCCD3A0BE08706B89 /* Resources */, - 9843650ED7AAC655DE285BC63443B4CC /* Support Files */, + 4ADB0704B3E2D4A27F9D4A31AE7D5CF0 /* AMapSearch-NO-IDFA.debug.xcconfig */, + 20C221C3FAE6488F4EDEED818C44CDD6 /* AMapSearch-NO-IDFA.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AMapSearch-NO-IDFA"; + sourceTree = ""; + }; + 333CCAB4EE816E332FF9A81C63132950 /* AMap3DMap-NO-IDFA */ = { + isa = PBXGroup; + children = ( + F89BFD8BE9C6DD26936552EE2B1A9507 /* MAAnimatedAnnotation.h */, + 37B4827DA9827B3D0B8EC89F522F92B3 /* MAAnnotation.h */, + D1817476C572138439BB2E13E8C45096 /* MAAnnotationMoveAnimation.h */, + 950D600CC053C2715B97DE0CAB30A00C /* MAAnnotationView.h */, + 0AF6857527573BF3900E9CE0D97AB4FB /* MAArc.h */, + 6E0300C9BA0A8C17B614ED5BD96E3E99 /* MAArcRenderer.h */, + D6116CC1F5E44C61DB36552FC8391D07 /* MABaseEngineOverlay.h */, + 4B15671E344E6FB2D7F1962533AF5BDF /* MABaseOverlay.h */, + 64D4B407D067F530EFA572719A87A0CA /* MACircle.h */, + FFAEB0B8447466ACC4348084500EA7D1 /* MACircleRenderer.h */, + 0D5531D415C0B9769DB23D75594BE144 /* MAConfig.h */, + 94BA5B784A95AB959379147117CC2C89 /* MACustomBuildingOverlay.h */, + 79268FE9EDB48B09520AC8C51659656C /* MACustomBuildingOverlayRenderer.h */, + F2A22B8C07490BCAE6D234EBD6D65496 /* MACustomCalloutView.h */, + 27A965981C98B78C7BA5DBBACF3F5880 /* MAGeodesicPolyline.h */, + 3C5E590F8C1AFE192720D4655625290C /* MAGeometry.h */, + F0C1BB90FB493C30623689797FC95F72 /* MAGroundOverlay.h */, + 1F1538E70E795808722BB28314B33572 /* MAGroundOverlayRenderer.h */, + 479D2251F56CDCC803178FF0E21FD7B0 /* MAHeatMapTileOverlay.h */, + FD7E4B4F0EC7855FB40B09A2B2D53F92 /* MAHeatMapVectorGridOverlay.h */, + 6913B853941612CA8D01D460A848A478 /* MAHeatMapVectorGridOverlayRenderer.h */, + D7AECDC4049F1B7A0627C5CBE9EEB801 /* MAHeatMapVectorOverlay.h */, + B06D674932EE56F5658143A81D819C4E /* MAHeatMapVectorOverlayRender.h */, + AE998C161FD292A69FA3480332FE8E94 /* MAIndoorInfo.h */, + 07893D47C6D034DEDA35BF43ECFA4F51 /* MALineDrawType.h */, + 179E8DCDE90BB09A93B5A20D14A2AF9F /* MAMapAccessibilityIdentifier.h */, + 9D86A178B3EBE1CD7076C6FFA26B5BAC /* MAMapCustomStyleOptions.h */, + DC6E025679FD5E5AA0ECAC4882CC6A4B /* MAMapKit.h */, + 02217EE365C32EE179ED6B3604311FA6 /* MAMapSnapshot.h */, + F0BE2E0E4D233B2CAF830194D40CBD6C /* MAMapStatus.h */, + D1C1468F3C5D7069B2AEE5D4CB1FC20A /* MAMapVersion.h */, + 42B7C6D97C0A1D4EE779539A5BDC279E /* MAMapView.h */, + 1DE51701473D3BA56631874E64FC3532 /* MAMapView+Resource.h */, + A1505B28F867C60BE3D9A63585CE1479 /* MAMultiColoredPolylineRenderer.h */, + D8FF9D3CA86B49A09EB91B1D8BB3B2E6 /* MAMultiPoint.h */, + BAD44B63C8224A9B7695A6588497FE42 /* MAMultiPointOverlay.h */, + 22F94D43169697717AD7FD93BCA5C0A5 /* MAMultiPointOverlayRenderer.h */, + A6E2E98A47908F30D4B4EE96DE85B3BF /* MAMultiPolyline.h */, + 3C987CC8FA3285C057154E3901A1B8C5 /* MAMultiTexturePolylineRenderer.h */, + D6E22522A6BBAC1BB10D1D328E2B4D78 /* MAMVTTileOverlay.h */, + 6489417A165C730B226E5B1D804A9408 /* MAMVTTileOverlayRenderer.h */, + 3111A6CB446BBF0DFF881240B823AB8E /* MAOfflineCity.h */, + B40D257CE33940958FDB368C92634D45 /* MAOfflineItem.h */, + 96166C2870775C1FA5506C14594664B3 /* MAOfflineItemCommonCity.h */, + EA2992EF84EEFF605B81D7CEBE1207FF /* MAOfflineItemMunicipality.h */, + 5E7675B734E1C6CDF8668372E8F3B84F /* MAOfflineItemNationWide.h */, + E97596E60F23912E556FFE9431FEFF16 /* MAOfflineMap.h */, + 7E8E07244D480795D3A2A96BD4F4C7E6 /* MAOfflineMapViewController.h */, + 39C67574DA3D6A9D1EBE4C33C2D924A0 /* MAOfflineProvince.h */, + E6A86446AD4439F02315529F70367138 /* MAOverlay.h */, + F1B8AC0FA0AFA598092BC556A736982F /* MAOverlayPathRenderer.h */, + 5A773D058BB5E3714D3BD8A1316F9CDF /* MAOverlayRenderer.h */, + AACDB0C84FA62EBA5CD006122428E894 /* MAParticleOverlay.h */, + 1EA143C71ADA11765E3423D6CB84DFB1 /* MAParticleOverlayOptions.h */, + 60B893CFB4A7C6AD794D9DEE5E9B7547 /* MAParticleOverlayRenderer.h */, + 4C128DCFB0D3BD12C81266660101FEA5 /* MAPathShowRange.h */, + C2E13C3E887C09076D7A7C1A9909F130 /* MAPinAnnotationView.h */, + D713759A92D8BCC29CD7DC3CFD289395 /* MAPoiFilter.h */, + B5A81E7F9BCF713C6B40924387EF7A25 /* MAPointAnnotation.h */, + E671EF7D12D06CC20EE69DD9DB2529F5 /* MAPolygon.h */, + DDC40C79056DF949D26DF6A7E6B6B2B0 /* MAPolygonRenderer.h */, + E93BF19421F945A744EC8B82704CD713 /* MAPolyline.h */, + 03FD8F08A7E902C8304769A760AE03F8 /* MAPolylineRenderer.h */, + EC9CB2A859C74253A5649F90F3AD668D /* MARouteOverlay.h */, + BF5B01EA8038304B63E8140D0E4CEC6E /* MARouteOverlayModel.h */, + 96AB96D3D117AC51019E2BF9D4826F59 /* MAShape.h */, + CB890D7ECF0331820F5D5B21DA943E35 /* MATerrainOverlay.h */, + 73F6CF8DCA15A7BB80B9BAC94CC46FA8 /* MATerrainOverlayRenderer.h */, + BD0ECDCE9B3838DE3652729396548862 /* MATileOverlay.h */, + 670E3E43B240B76E406CCCF1D80A5EBF /* MATileOverlayRenderer.h */, + 12777F62398EA80224A2785DDEC3095A /* MATouchPoi.h */, + 5EB6A65D560051402A68177B80171225 /* MATraceLocation.h */, + 25DA44E4FBED19BB0DF9F88A248F3F5E /* MATraceManager.h */, + 6C13C8B921EDBEA42CC647D7F97802BC /* MAUserLocation.h */, + 8B129C7071E638EF8F02A4B3D4DF59EE /* MAUserLocationRepresentation.h */, + B7F5668B4968CD3B17D09682FC4F2AD2 /* Frameworks */, + 3E59FADDAAB0D83D0E3D23C38A951972 /* Resources */, + 9650B393E613ED5BAD5D994B76CAE0C4 /* Support Files */, ); name = "AMap3DMap-NO-IDFA"; path = "AMap3DMap-NO-IDFA"; sourceTree = ""; }; - 91072AD823CF91336402ACD01C8E3586 /* AMapFoundation-NO-IDFA */ = { + 3E59FADDAAB0D83D0E3D23C38A951972 /* Resources */ = { isa = PBXGroup; children = ( - 8AD77551BBE324D957E93425CDDE1576 /* AMapFoundationConst.h */, - 2C3764593873EDDAF8A086E39CA140D4 /* AMapFoundationKit.h */, - 5164D4BBB00D3D7BB82D96A381D2A5C1 /* AMapFoundationVersion.h */, - C98E7DE75AE0A21CFAB5A0646473431F /* AMapServices.h */, - 303814ECB7988A2E7E6C6C1609D73152 /* AMapURLSearch.h */, - 9EF1A7E1F21502AA06F7F4CCEF91B56B /* AMapURLSearchConfig.h */, - 8B385062BA1E587F382CA327B6C2CB16 /* AMapURLSearchType.h */, - FABA86169032152A7B6FF54D106192AD /* AMapUtility.h */, - FC12D8C94C9391A7ACB6E34151D98A5B /* Frameworks */, - 18160A91BB2A19B0F666BE748D2F02B7 /* Support Files */, + 17AAC989FB56464455A9E8ED437E4E8B /* AMap.bundle */, ); - name = "AMapFoundation-NO-IDFA"; - path = "AMapFoundation-NO-IDFA"; + name = Resources; sourceTree = ""; }; - 9843650ED7AAC655DE285BC63443B4CC /* Support Files */ = { + 43D527305AB3C89EF23F79682DBC3C06 /* AMapSearch-NO-IDFA */ = { isa = PBXGroup; children = ( - 7D7B92668EB5A4C1D209F11543FC199F /* AMap3DMap-NO-IDFA.debug.xcconfig */, - 66FC53FBC5F1CA4B85240B8EE1F77251 /* AMap3DMap-NO-IDFA.release.xcconfig */, + 0468C9EDD81C0FA55A1E114FD4F50888 /* AMapCommonObj.h */, + 3957E91240141AA1172DDE08664C2FDE /* AMapNearbySearchManager.h */, + 406C62ACD9BC253DEFA23D034208C225 /* AMapNearbyUploadInfo.h */, + ADFEE7DB708FDF6C57C1799A67FF465E /* AMapSearchAPI.h */, + 1E50FFF4B5D963DD2E1C163D0947C39D /* AMapSearchError.h */, + 36F27DFF7FB3BD0B40B252FB6DE17AA4 /* AMapSearchKit.h */, + B7401B852E9ED119C83E93DE45E06560 /* AMapSearchObj.h */, + CA74F811F64E6F8E4EAE1DF86A23AC55 /* AMapSearchObjV1.h */, + 52C610AF7C0574F9ABF277E8E8FF9F4E /* AMapSearchVersion.h */, + B88F4DE8D2512159EF3CD40044889B81 /* Frameworks */, + 32648DEF59B7C80AEA4FD4F4C56E28E2 /* Support Files */, + ); + name = "AMapSearch-NO-IDFA"; + path = "AMapSearch-NO-IDFA"; + sourceTree = ""; + }; + 51CE51AEB4DF6A4943765E55178C8CEF /* Pods */ = { + isa = PBXGroup; + children = ( + 333CCAB4EE816E332FF9A81C63132950 /* AMap3DMap-NO-IDFA */, + ADEE5CB6E1ED60AD1D58FE6AB3993F97 /* AMapFoundation-NO-IDFA */, + 136B3F60DD26735EE8FF544893CF6CA8 /* AMapLocation-NO-IDFA */, + 43D527305AB3C89EF23F79682DBC3C06 /* AMapSearch-NO-IDFA */, + ); + name = Pods; + sourceTree = ""; + }; + 81C73A1D28B5BFA280DD9E341F4FE010 /* Support Files */ = { + isa = PBXGroup; + children = ( + 50416CD761E5B67B024889A9055280A1 /* AMapLocation-NO-IDFA.debug.xcconfig */, + 5C9770B675559EB4331810063B73DDC1 /* AMapLocation-NO-IDFA.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AMapLocation-NO-IDFA"; + sourceTree = ""; + }; + 8311A11FC14B9FA4BA1B0EFC4D05CACE /* Frameworks */ = { + isa = PBXGroup; + children = ( + EC4822E11358118DBE26CAC71CE026AC /* AMapLocationKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9650B393E613ED5BAD5D994B76CAE0C4 /* Support Files */ = { + isa = PBXGroup; + children = ( + 38C9B733D70D2C1018E98375FEBB4D3E /* AMap3DMap-NO-IDFA.debug.xcconfig */, + 0249ED7AD58489423B69253BB3F68C77 /* AMap3DMap-NO-IDFA.release.xcconfig */, ); name = "Support Files"; path = "../Target Support Files/AMap3DMap-NO-IDFA"; sourceTree = ""; }; - C7AD15EDBDEAED2A18A0CE84F75C9F1D /* Frameworks */ = { + ADEE5CB6E1ED60AD1D58FE6AB3993F97 /* AMapFoundation-NO-IDFA */ = { isa = PBXGroup; children = ( - 5B6FE1BE92D481044CBF344D181F4EBF /* AMapLocationKit.framework */, + 13A233A7815D5407B79718473F81E3B9 /* AMapFoundationConst.h */, + FAF21049EDA17C2F8A5D890B2C1322FD /* AMapFoundationKit.h */, + CD9CA392D76E4DD502C6408386883A69 /* AMapFoundationVersion.h */, + 8492A7C1AEEA886EA3D51FE5804428A4 /* AMapServices.h */, + 99C67F83F400D9D89A9FA05B76CFD549 /* AMapURLSearch.h */, + 0ECDD3A14AC7808A63FC560ECEFCD281 /* AMapURLSearchConfig.h */, + B890308220586EABC27EA0E6CFC1DFD2 /* AMapURLSearchType.h */, + 0ED959CB4F20C5C790E17D06A1B5C712 /* AMapUtility.h */, + 2650C708B244E6D36B6119EEE0BADFB6 /* Frameworks */, + E210E6B5BC99E3497F97161C0D4897A8 /* Support Files */, + ); + name = "AMapFoundation-NO-IDFA"; + path = "AMapFoundation-NO-IDFA"; + sourceTree = ""; + }; + B7F5668B4968CD3B17D09682FC4F2AD2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 670523F1C5175EE89771DB428EBEC517 /* MAMapKit.framework */, ); name = Frameworks; sourceTree = ""; }; + B88F4DE8D2512159EF3CD40044889B81 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 28CB70E49423CA534786DD30DDCE03EE /* AMapSearchKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + C0A54D8DDA8ED18D016C2F971E3440BD /* Products */ = { + isa = PBXGroup; + children = ( + 5BD109278933E8C2F269E5DCEC3A5376 /* Pods-suixinkan */, + 1B7465A72120AF417FD5F1F34AD33AD4 /* Pods-suixinkanTests */, + ); + name = Products; + sourceTree = ""; + }; + C111D316B9ED9498A7739F61CB9C3958 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + C7D8EE410ED114D2A14E9F97869A8B54 /* Pods-suixinkan */, + DD51156B35FBCA6A32E3B025718A7857 /* Pods-suixinkanTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + C7D8EE410ED114D2A14E9F97869A8B54 /* Pods-suixinkan */ = { + isa = PBXGroup; + children = ( + 8C64DEFEB1E7F2C66D9E36F704EB2EDA /* Pods-suixinkan.modulemap */, + 069E056FF5EF11FB955BE3C9637228BF /* Pods-suixinkan-acknowledgements.markdown */, + 44674EC1944BB8CC20D1FB811A28DA3F /* Pods-suixinkan-acknowledgements.plist */, + BF228B17BC7260C40143BD13BD131504 /* Pods-suixinkan-dummy.m */, + D49628F6F87CD3F4A82F10BBA92C44A3 /* Pods-suixinkan-Info.plist */, + 9EABEC92964633D02091EEB81DAC2A28 /* Pods-suixinkan-resources.sh */, + CE36A961B0F78784EC9BFE7F48C84F82 /* Pods-suixinkan-umbrella.h */, + 61B7C8006610229F8A3485704A3944CF /* Pods-suixinkan.debug.xcconfig */, + 2D9188A08F7F86FBF3EBB3CD93699D53 /* Pods-suixinkan.release.xcconfig */, + ); + name = "Pods-suixinkan"; + path = "Target Support Files/Pods-suixinkan"; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, - E956B89C5AB772A5A003448AFC0F1D01 /* Pods */, - F129FB90A985C9A9FFEDDB262773057B /* Products */, - D5B2884487651951A6FC723A46071B1E /* Targets Support Files */, + 51CE51AEB4DF6A4943765E55178C8CEF /* Pods */, + C0A54D8DDA8ED18D016C2F971E3440BD /* Products */, + C111D316B9ED9498A7739F61CB9C3958 /* Targets Support Files */, ); sourceTree = ""; }; @@ -750,13 +549,30 @@ name = Frameworks; sourceTree = ""; }; - D5B2884487651951A6FC723A46071B1E /* Targets Support Files */ = { + DD51156B35FBCA6A32E3B025718A7857 /* Pods-suixinkanTests */ = { isa = PBXGroup; children = ( - 6AF4AB2CD95191F647218D6A24F8669C /* Pods-suixinkan */, - 06FC11260001589A2237273CF11C079C /* Pods-suixinkanTests */, + 8954141270608938A38FD68585BFD293 /* Pods-suixinkanTests.modulemap */, + 668A9B1E2D7B1954AE52ABE25041CC36 /* Pods-suixinkanTests-acknowledgements.markdown */, + 930BB613D93B3F0743FE520201572148 /* Pods-suixinkanTests-acknowledgements.plist */, + BBC4E88072A58FC7DD14D5BC2316725E /* Pods-suixinkanTests-dummy.m */, + 0560C72601DFB7648983A59E3A8630CF /* Pods-suixinkanTests-Info.plist */, + 65EE9CD76EF8BD358253184A5FA8B069 /* Pods-suixinkanTests-umbrella.h */, + 3CE7B2EE0FE95BBD834825FA4D0571C5 /* Pods-suixinkanTests.debug.xcconfig */, + A1C2AE0D141F894C0C841BDB91EA7784 /* Pods-suixinkanTests.release.xcconfig */, ); - name = "Targets Support Files"; + name = "Pods-suixinkanTests"; + path = "Target Support Files/Pods-suixinkanTests"; + sourceTree = ""; + }; + E210E6B5BC99E3497F97161C0D4897A8 /* Support Files */ = { + isa = PBXGroup; + children = ( + 21EABC2335DC8A3C9920D03EED819DFD /* AMapFoundation-NO-IDFA.debug.xcconfig */, + 1C389829A9B7304C4C2F81E54D9281D4 /* AMapFoundation-NO-IDFA.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AMapFoundation-NO-IDFA"; sourceTree = ""; }; E4801F62A6B08CD9B5410329F1A18FDE /* iOS */ = { @@ -767,56 +583,6 @@ name = iOS; sourceTree = ""; }; - E956B89C5AB772A5A003448AFC0F1D01 /* Pods */ = { - isa = PBXGroup; - children = ( - 864FE91AA01AC5B2E6FFDA176A681BD2 /* AMap3DMap-NO-IDFA */, - 91072AD823CF91336402ACD01C8E3586 /* AMapFoundation-NO-IDFA */, - 7F3AD2B90B0B80C514A35486BB2A9FEA /* AMapLocation-NO-IDFA */, - EB8B9545679B07EE2EAD940C398A7674 /* AMapSearch-NO-IDFA */, - 818ECC7C7775F8B414791FE64DDD61C2 /* MJRefresh */, - ); - name = Pods; - sourceTree = ""; - }; - EB8B9545679B07EE2EAD940C398A7674 /* AMapSearch-NO-IDFA */ = { - isa = PBXGroup; - children = ( - AAC4B7F927E219B1DFD11E5CD917F77E /* AMapCommonObj.h */, - 8FC3A0B6583F5CDEAF30AD5131E7CD26 /* AMapNearbySearchManager.h */, - 547E2BB070A41800DA8456A17F7D43D8 /* AMapNearbyUploadInfo.h */, - 55E496B24E5804D652EE6D1800A07B03 /* AMapSearchAPI.h */, - 15559E428759203AE92027639D25DDFB /* AMapSearchError.h */, - B1D214337580B2356480AE6AB94F983C /* AMapSearchKit.h */, - 641C5C6A474E625CE9316589E2270E66 /* AMapSearchObj.h */, - 2FAEF46266BFEDD00FC91317EE4C609D /* AMapSearchObjV1.h */, - 0AD5AF59E9B5193792BD98D1FCF13958 /* AMapSearchVersion.h */, - 03B6E08AD4E00EDA816D86E493F33C0A /* Frameworks */, - 33F808A5E11C924EC96AE95B4ABF9CEC /* Support Files */, - ); - name = "AMapSearch-NO-IDFA"; - path = "AMapSearch-NO-IDFA"; - sourceTree = ""; - }; - F129FB90A985C9A9FFEDDB262773057B /* Products */ = { - isa = PBXGroup; - children = ( - E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */, - 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */, - 5BD109278933E8C2F269E5DCEC3A5376 /* Pods-suixinkan */, - 1B7465A72120AF417FD5F1F34AD33AD4 /* Pods-suixinkanTests */, - ); - name = Products; - sourceTree = ""; - }; - FC12D8C94C9391A7ACB6E34151D98A5B /* Frameworks */ = { - isa = PBXGroup; - children = ( - B41C4C6184ED489566C98EDA260CB769 /* AMapFoundationKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -828,44 +594,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 209B4093533F7201ADD921788D2E5309 /* Headers */ = { + 2DB2D5F8BA4CDF63E3B0B08254688D43 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B334090388C245FABE5077F228965657 /* Pods-suixinkan-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 22C4F6C2D1258108CF5B6E74F03D0EB2 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 7989A6E79BFA78440C39F568D972305C /* MJRefresh.h in Headers */, - 325CA20B9271F3E008234E1518B79061 /* MJRefresh-umbrella.h in Headers */, - 561420A20DC0A84258A902E9EB69A15A /* MJRefreshAutoFooter.h in Headers */, - EC8E84A8FFADDCA562A8608D141D9027 /* MJRefreshAutoGifFooter.h in Headers */, - 7902D28FC9EF5AFEB452F508C7F266B1 /* MJRefreshAutoNormalFooter.h in Headers */, - 5BB6B99986FD7111B3AEBE931C7F507B /* MJRefreshAutoStateFooter.h in Headers */, - 45E1583D7EF53489B82C4CA2AD1AD0CF /* MJRefreshBackFooter.h in Headers */, - 475B4F3E71C293065AAFDB1888696CF6 /* MJRefreshBackGifFooter.h in Headers */, - 9A7FB1E975A5955C896E6B195C521804 /* MJRefreshBackNormalFooter.h in Headers */, - 08719ABCE689ED74FE7486B1E49DAA6C /* MJRefreshBackStateFooter.h in Headers */, - 69345CBCB31076EBF8A2C5885AF973AB /* MJRefreshComponent.h in Headers */, - 4DCA75BFE1558CE59DFC56607E49B3D2 /* MJRefreshConfig.h in Headers */, - 28BA9702905AA2B4C1E9E4878032D4E4 /* MJRefreshConst.h in Headers */, - D90DED0F5638B1C44F4B6C62D600D240 /* MJRefreshFooter.h in Headers */, - 61461B0D9D7B81C3F8D24066D9A19DCE /* MJRefreshGifHeader.h in Headers */, - 442F468E261A1106C291BF52BDBF9DB7 /* MJRefreshHeader.h in Headers */, - EE6E8FE636D2C02E3D2FC1E8555B4612 /* MJRefreshNormalHeader.h in Headers */, - BC2F9B1D6986FEB23B4FB1288B512538 /* MJRefreshNormalTrailer.h in Headers */, - 5DFCBADAC7D0FAC82C84A6C8E7BF1DA6 /* MJRefreshStateHeader.h in Headers */, - F60F90EAF35CFF40DF1C33557965787D /* MJRefreshStateTrailer.h in Headers */, - 523235228A1C021C67F2E3776A922DC5 /* MJRefreshTrailer.h in Headers */, - 81A5635CEA2AD9623E30CAE9AFC3BF65 /* NSBundle+MJRefresh.h in Headers */, - 5163FC6D715F6881B1FA1AB13DCEF870 /* UICollectionViewLayout+MJRefresh.h in Headers */, - 22516EA77E7120000632C30BD9A03927 /* UIScrollView+MJExtension.h in Headers */, - 69E353C99C6EEA3C93CCF2E526460B9D /* UIScrollView+MJRefresh.h in Headers */, - 3A2FCB914F6EADED828FF05F7E9132AE /* UIView+MJExtension.h in Headers */, + 991C56154D625F2C902B960C2F8EA27F /* Pods-suixinkan-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -874,21 +607,20 @@ /* Begin PBXNativeTarget section */ 1DE17B7C77CD95CB67DF1197965B76AB /* Pods-suixinkan */ = { isa = PBXNativeTarget; - buildConfigurationList = 6487E47B4E9A3B195AA3BE4343D199FE /* Build configuration list for PBXNativeTarget "Pods-suixinkan" */; + buildConfigurationList = FCDBF877017B428DCC77941BF6BFCE55 /* Build configuration list for PBXNativeTarget "Pods-suixinkan" */; buildPhases = ( - 209B4093533F7201ADD921788D2E5309 /* Headers */, - D271084EA70C49C91FD0FF37A626FA8B /* Sources */, - 5E0D0C50A7A873544D16A5F9C04AB995 /* Frameworks */, - 2FD1212D926DC6F1D3DF58F032EA55EF /* Resources */, + 2DB2D5F8BA4CDF63E3B0B08254688D43 /* Headers */, + 2ED8C463692520134366F7B67BA81982 /* Sources */, + F76C05B3CCA2152BC55E3D3995D922D9 /* Frameworks */, + 4E5DC3AF9465D1D0D8FCDAA72806EF09 /* Resources */, ); buildRules = ( ); dependencies = ( - 60ABA24337210987D9A79F7D57C0EC00 /* PBXTargetDependency */, - BCAF443D8DFE5A1AFC52E1E2EAF619BA /* PBXTargetDependency */, - 09649301809B98B284C3F1652EFC30AC /* PBXTargetDependency */, - DB01A80A31066FDAD4B23DBA627E4EAA /* PBXTargetDependency */, - FE70A8F2F5586F2DD631E0020DC79776 /* PBXTargetDependency */, + 7D028772FF3CCF105B5F47AFE034EFCA /* PBXTargetDependency */, + 6589552B8FD8DBC81A79FDD52A6C9C43 /* PBXTargetDependency */, + 82FE05E1DCD19D00122E30589369E7C4 /* PBXTargetDependency */, + 9218C019561F60337D0D0ED2E6099986 /* PBXTargetDependency */, ); name = "Pods-suixinkan"; productName = Pods_suixinkan; @@ -907,49 +639,13 @@ buildRules = ( ); dependencies = ( - AEC3BCF41FBD1544EE0F0D4CDCECC7B4 /* PBXTargetDependency */, + C5FF37D4205F1FD4B256A0ADD8473126 /* PBXTargetDependency */, ); name = "Pods-suixinkanTests"; productName = Pods_suixinkanTests; productReference = 1B7465A72120AF417FD5F1F34AD33AD4 /* Pods-suixinkanTests */; productType = "com.apple.product-type.framework"; }; - 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */ = { - isa = PBXNativeTarget; - buildConfigurationList = 29BB59B7B51BC6194771995E3356CF70 /* Build configuration list for PBXNativeTarget "MJRefresh" */; - buildPhases = ( - 22C4F6C2D1258108CF5B6E74F03D0EB2 /* Headers */, - E01EA717D0A0AF8E12D145A5F2252FD2 /* Sources */, - 11690A588400BBB164423D5F86311C35 /* Frameworks */, - 4A4F8947EF95B9D0D1FCFC1296740510 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 47FF838E4866B19860A91B39D64ABCD0 /* PBXTargetDependency */, - ); - name = MJRefresh; - productName = MJRefresh; - productReference = E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */; - productType = "com.apple.product-type.framework"; - }; - B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9BEED3DD739942FA8862CB57BB02CDE7 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */; - buildPhases = ( - 44B11D5EDB49AE22C6DAC036C90A13F8 /* Sources */, - 880E41AE438415E959603EC5884F97CB /* Frameworks */, - 1BFD78DA08275E7D04592F194A11BA86 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "MJRefresh-MJRefresh.Privacy"; - productName = MJRefresh.Privacy; - productReference = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */; - productType = "com.apple.product-type.bundle"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -970,7 +666,7 @@ mainGroup = CF1408CF629C7361332E53B88F7BD30C; minimizedProjectReferenceProxies = 0; preferredProjectObjectVersion = 77; - productRefGroup = F129FB90A985C9A9FFEDDB262773057B /* Products */; + productRefGroup = C0A54D8DDA8ED18D016C2F971E3440BD /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -978,8 +674,6 @@ 9B182CB4E1716E9070813D3C59736001 /* AMapFoundation-NO-IDFA */, 4BD4E22D3419D68A85BDD6119CB37C6C /* AMapLocation-NO-IDFA */, 4F1379598302C9160590B3650C10E1A5 /* AMapSearch-NO-IDFA */, - 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */, - B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */, 1DE17B7C77CD95CB67DF1197965B76AB /* Pods-suixinkan */, 508CB5D3E96E222654C51F13079FC2CD /* Pods-suixinkanTests */, ); @@ -987,21 +681,6 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 1BFD78DA08275E7D04592F194A11BA86 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 80F3B2F81449FE093C334EACB25832F9 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2FD1212D926DC6F1D3DF58F032EA55EF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4995BF6BC2129E05D351581B0A223B59 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1009,22 +688,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4A4F8947EF95B9D0D1FCFC1296740510 /* Resources */ = { + 4E5DC3AF9465D1D0D8FCDAA72806EF09 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D90DF1376DF5E2EA644313BCD2E03058 /* MJRefresh.bundle in Resources */, - 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh-MJRefresh.Privacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 44B11D5EDB49AE22C6DAC036C90A13F8 /* Sources */ = { + 2ED8C463692520134366F7B67BA81982 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + EA1E1655DA5C4F62F66ADA15925A59E3 /* Pods-suixinkan-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1036,171 +714,63 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D271084EA70C49C91FD0FF37A626FA8B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B7CC9AE896BFAB94775EAA25D7442422 /* Pods-suixinkan-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E01EA717D0A0AF8E12D145A5F2252FD2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DE98ECCCA7106A4EA575EF34830D41FF /* MJRefresh-dummy.m in Sources */, - 11C929E6BFB46F981685446F26DCE605 /* MJRefreshAutoFooter.m in Sources */, - E5B057BC87284367918B2DB9CA084B4E /* MJRefreshAutoGifFooter.m in Sources */, - 6DE6C7F0FA965828E4FCE687BF75FBBE /* MJRefreshAutoNormalFooter.m in Sources */, - 8872BEB0954C0254A792469F4DBC9891 /* MJRefreshAutoStateFooter.m in Sources */, - F3AECEF6D3BB919B3E7392942E1BC58B /* MJRefreshBackFooter.m in Sources */, - A1E44277704AD68E867FD7C955A6632D /* MJRefreshBackGifFooter.m in Sources */, - 955B87902E039163281C4F47C95DB851 /* MJRefreshBackNormalFooter.m in Sources */, - B09F08548ACA8379445F6525011EE219 /* MJRefreshBackStateFooter.m in Sources */, - C60DB44F719853DE3B7157960DAF9270 /* MJRefreshComponent.m in Sources */, - 2DC44A09A6C9D6DC7D1BDA2DFCF99EE3 /* MJRefreshConfig.m in Sources */, - 54E268C32915CF908E7AA776909B45EB /* MJRefreshConst.m in Sources */, - 186B573F1BEB8A23419A02814A7741DB /* MJRefreshFooter.m in Sources */, - FEE883575278D5BE8F185437AB5DB3BB /* MJRefreshGifHeader.m in Sources */, - 85AB23275E9D19394969235E5DC2300E /* MJRefreshHeader.m in Sources */, - 0EF10747EF2A02413E84BD5EF7C87A4B /* MJRefreshNormalHeader.m in Sources */, - D90607B4E56247B19B14462E487BA86E /* MJRefreshNormalTrailer.m in Sources */, - A078A275FFFA48D620074790DA3CA6CE /* MJRefreshStateHeader.m in Sources */, - 452C940762F65B125C216F73B369F583 /* MJRefreshStateTrailer.m in Sources */, - 5BD5D9B8F61C124A62C75D9AC36A07BD /* MJRefreshTrailer.m in Sources */, - 24E963C1D6245F98BAC8A0ACCB7DE987 /* NSBundle+MJRefresh.m in Sources */, - BD30193C1E3D7B1F17B1B1F3F08BE655 /* UICollectionViewLayout+MJRefresh.m in Sources */, - E1DE69F6BB6235A6EDB6C99A184BEDB4 /* UIScrollView+MJExtension.m in Sources */, - A86CC1AFDFDD692DC4EE66F57C0F39E6 /* UIScrollView+MJRefresh.m in Sources */, - 5FDC4239F7B651092BF582D0F460BAD4 /* UIView+MJExtension.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 09649301809B98B284C3F1652EFC30AC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AMapLocation-NO-IDFA"; - target = 4BD4E22D3419D68A85BDD6119CB37C6C /* AMapLocation-NO-IDFA */; - targetProxy = 39E814A976E263DBFB8C20B560CA29E2 /* PBXContainerItemProxy */; - }; - 14AF565C4637B73BC2584C61CC7EC677 /* PBXTargetDependency */ = { + 5CA482D3FDDBAD1FBF45810BFB30868D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "AMapFoundation-NO-IDFA"; target = 9B182CB4E1716E9070813D3C59736001 /* AMapFoundation-NO-IDFA */; - targetProxy = E0B1E07063BAB873511674BF967B3596 /* PBXContainerItemProxy */; + targetProxy = 589E9D53A0A18E62241CDC1546C39754 /* PBXContainerItemProxy */; }; - 27F685E292172B93505CBABC9D049072 /* PBXTargetDependency */ = { + 6589552B8FD8DBC81A79FDD52A6C9C43 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "AMapFoundation-NO-IDFA"; target = 9B182CB4E1716E9070813D3C59736001 /* AMapFoundation-NO-IDFA */; - targetProxy = 58ACB14B669F8CD6C4362DD783E388FC /* PBXContainerItemProxy */; + targetProxy = 70FAFD022EBDF3AF6FA6D56FD062BC00 /* PBXContainerItemProxy */; }; - 2D0AD056C34FAA29284DF2D03917892C /* PBXTargetDependency */ = { + 6C65DF00B250F024B4E6B6F4330093DA /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "AMapFoundation-NO-IDFA"; target = 9B182CB4E1716E9070813D3C59736001 /* AMapFoundation-NO-IDFA */; - targetProxy = 5FF2C31B96AE85013B4BEBC8B641E3C6 /* PBXContainerItemProxy */; + targetProxy = 2B4CA41C0FEC2F8A31D4426133DAE413 /* PBXContainerItemProxy */; }; - 47FF838E4866B19860A91B39D64ABCD0 /* PBXTargetDependency */ = { + 770B6209BD1D6EEACDEC08C4F8D15368 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "MJRefresh-MJRefresh.Privacy"; - target = B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */; - targetProxy = 809D27ABC18E19451394228BE9D4AA86 /* PBXContainerItemProxy */; + name = "AMapFoundation-NO-IDFA"; + target = 9B182CB4E1716E9070813D3C59736001 /* AMapFoundation-NO-IDFA */; + targetProxy = 47D4666849C29F0443F98043012741E4 /* PBXContainerItemProxy */; }; - 60ABA24337210987D9A79F7D57C0EC00 /* PBXTargetDependency */ = { + 7D028772FF3CCF105B5F47AFE034EFCA /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "AMap3DMap-NO-IDFA"; target = B44FB02BD2D3FEAD1F36808AD405A543 /* AMap3DMap-NO-IDFA */; - targetProxy = A3A7B10AC9A70CD988084F9A0559EFEE /* PBXContainerItemProxy */; + targetProxy = 7F46567B2D4C2C2D6B168DB1D6C4B959 /* PBXContainerItemProxy */; }; - AEC3BCF41FBD1544EE0F0D4CDCECC7B4 /* PBXTargetDependency */ = { + 82FE05E1DCD19D00122E30589369E7C4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-suixinkan"; - target = 1DE17B7C77CD95CB67DF1197965B76AB /* Pods-suixinkan */; - targetProxy = B93D696C9911155C9CFB043E22AF9B10 /* PBXContainerItemProxy */; + name = "AMapLocation-NO-IDFA"; + target = 4BD4E22D3419D68A85BDD6119CB37C6C /* AMapLocation-NO-IDFA */; + targetProxy = 10773E84BB082E09D8E276432A257D58 /* PBXContainerItemProxy */; }; - BCAF443D8DFE5A1AFC52E1E2EAF619BA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AMapFoundation-NO-IDFA"; - target = 9B182CB4E1716E9070813D3C59736001 /* AMapFoundation-NO-IDFA */; - targetProxy = 36D052FD95B687E1F36CEDFEEA13AFD6 /* PBXContainerItemProxy */; - }; - DB01A80A31066FDAD4B23DBA627E4EAA /* PBXTargetDependency */ = { + 9218C019561F60337D0D0ED2E6099986 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "AMapSearch-NO-IDFA"; target = 4F1379598302C9160590B3650C10E1A5 /* AMapSearch-NO-IDFA */; - targetProxy = 0ED508B124853B684DDAEE58F0371D71 /* PBXContainerItemProxy */; + targetProxy = AEBE04EE6A5B130F5ABA3ADAA7541F3D /* PBXContainerItemProxy */; }; - FE70A8F2F5586F2DD631E0020DC79776 /* PBXTargetDependency */ = { + C5FF37D4205F1FD4B256A0ADD8473126 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = MJRefresh; - target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; - targetProxy = 07CE15427FBD194439F72813F1E79F5D /* PBXContainerItemProxy */; + name = "Pods-suixinkan"; + target = 1DE17B7C77CD95CB67DF1197965B76AB /* Pods-suixinkan */; + targetProxy = 09D400E62C865DFB3552C9FF55DFBF14 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 059F508CFE102C20A25E012FD4BCDDFF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B3A9B2740ED243A88FDF2D9AE77E9392 /* Pods-suixinkan.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-suixinkan/Pods-suixinkan-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-suixinkan/Pods-suixinkan.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 05B95C83CF623D71146E3A05162DC69D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2B58225B825CAD86A961027F68A2994E /* MJRefresh.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 0606EC124017CF52B54FEB3096BC7E75 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CF9B73BD5A7EF49C515CE054315DBC4E /* Pods-suixinkanTests.debug.xcconfig */; + baseConfigurationReference = 3CE7B2EE0FE95BBD834825FA4D0571C5 /* Pods-suixinkanTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1237,25 +807,6 @@ }; name = Debug; }; - 2B131D06A21388BEC03655FBFA68B198 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 67B7CB4CBC7DAA9DD71077F5EA8A0F03 /* AMapFoundation-NO-IDFA.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; 30E0B9EFD9A5C45D0D351231E81B30B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1318,9 +869,9 @@ }; name = Release; }; - 49EBBE60492138920A951F8BD7CD4013 /* Release */ = { + 33FF65CC939DB2ACD3BF5B4E6E6F56D6 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 66FC53FBC5F1CA4B85240B8EE1F77251 /* AMap3DMap-NO-IDFA.release.xcconfig */; + baseConfigurationReference = 1C389829A9B7304C4C2F81E54D9281D4 /* AMapFoundation-NO-IDFA.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -1337,48 +888,28 @@ }; name = Release; }; - 4E3C211534863595B5F43E8250BB4DB1 /* Debug */ = { + 49EBBE60492138920A951F8BD7CD4013 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2B58225B825CAD86A961027F68A2994E /* MJRefresh.debug.xcconfig */; + baseConfigurationReference = 0249ED7AD58489423B69253BB3F68C77 /* AMap3DMap-NO-IDFA.release.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/MJRefresh/MJRefresh-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/MJRefresh/MJRefresh-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", - "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/MJRefresh/MJRefresh.modulemap"; - PRODUCT_MODULE_NAME = MJRefresh; - PRODUCT_NAME = MJRefresh; SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; + SUPPORTED_PLATFORMS = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; 535F4FAD82A3C67D930C230498439B31 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2B656CB39B267965926C558095D6C5B7 /* AMapSearch-NO-IDFA.debug.xcconfig */; + baseConfigurationReference = 4ADB0704B3E2D4A27F9D4A31AE7D5CF0 /* AMapSearch-NO-IDFA.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -1396,7 +927,7 @@ }; 59C25D381C381A4E53F13543611D1E41 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 38B439905141423BD2DADBBD5EFC72DE /* Pods-suixinkanTests.release.xcconfig */; + baseConfigurationReference = A1C2AE0D141F894C0C841BDB91EA7784 /* Pods-suixinkanTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1434,9 +965,140 @@ }; name = Release; }; - 639EF0D5A75FE8B164282F89ABBC8A1D /* Release */ = { + 7BB3D81AAC9EB818C249626A41588C41 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 081A933139371B97D5ABFD37B065516E /* Pods-suixinkan.release.xcconfig */; + baseConfigurationReference = 21EABC2335DC8A3C9920D03EED819DFD /* AMapFoundation-NO-IDFA.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 8076472B15CAFA346B2FBF304BD0B32C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 61B7C8006610229F8A3485704A3944CF /* Pods-suixinkan.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-suixinkan/Pods-suixinkan-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-suixinkan/Pods-suixinkan.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + A5889394557E95B280BBA784CBC27862 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 50416CD761E5B67B024889A9055280A1 /* AMapLocation-NO-IDFA.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + CA5F2D3465D7CF173F604FC5D9E07ED5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 20C221C3FAE6488F4EDEED818C44CDD6 /* AMapSearch-NO-IDFA.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + D80C09B5C3E12110BB1B81C6C2F5466A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5C9770B675559EB4331810063B73DDC1 /* AMapLocation-NO-IDFA.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + DD7C8FFCC688D270EB22589A35ABBC73 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 38C9B733D70D2C1018E98375FEBB4D3E /* AMap3DMap-NO-IDFA.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + EB4999FBC2DB974780AA976726FD20A2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2D9188A08F7F86FBF3EBB3CD93699D53 /* Pods-suixinkan.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1474,155 +1136,6 @@ }; name = Release; }; - 7312A0B335DF5880FF7B9D3A5F96D1E9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1D1227D5C439B4A7C6B3CA5B94B6BFE5 /* MJRefresh.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 8BB1669D2FD16A3634D2142D4CB8AA96 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1D1227D5C439B4A7C6B3CA5B94B6BFE5 /* MJRefresh.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/MJRefresh/MJRefresh-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/MJRefresh/MJRefresh-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/MJRefresh/MJRefresh.modulemap"; - PRODUCT_MODULE_NAME = MJRefresh; - PRODUCT_NAME = MJRefresh; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A3003A2D7E7B8B025955B30DE4D4340B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6C70E88A48758B567F7C05DDD607C8A6 /* AMapFoundation-NO-IDFA.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - A5889394557E95B280BBA784CBC27862 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E9F04ADFC5DDC9481CE86CBF1CFBEC3B /* AMapLocation-NO-IDFA.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - CA5F2D3465D7CF173F604FC5D9E07ED5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E0603419C7ED70271FCFAB161D6626C4 /* AMapSearch-NO-IDFA.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - D80C09B5C3E12110BB1B81C6C2F5466A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 72B5AE3C704A7632DFBFA60F5FCDDBE3 /* AMapLocation-NO-IDFA.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - DD7C8FFCC688D270EB22589A35ABBC73 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7D7B92668EB5A4C1D209F11543FC199F /* AMap3DMap-NO-IDFA.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; F4FF6A0D1970CA9705974E3CB2134802 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1692,15 +1205,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 29BB59B7B51BC6194771995E3356CF70 /* Build configuration list for PBXNativeTarget "MJRefresh" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4E3C211534863595B5F43E8250BB4DB1 /* Debug */, - 8BB1669D2FD16A3634D2142D4CB8AA96 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1719,15 +1223,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6487E47B4E9A3B195AA3BE4343D199FE /* Build configuration list for PBXNativeTarget "Pods-suixinkan" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 059F508CFE102C20A25E012FD4BCDDFF /* Debug */, - 639EF0D5A75FE8B164282F89ABBC8A1D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 74F8BC6869B879C9A4487377E57EA717 /* Build configuration list for PBXAggregateTarget "AMapSearch-NO-IDFA" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1737,15 +1232,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9BEED3DD739942FA8862CB57BB02CDE7 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 05B95C83CF623D71146E3A05162DC69D /* Debug */, - 7312A0B335DF5880FF7B9D3A5F96D1E9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 9CA117AC0BCD26718BF9BD3A972FB596 /* Build configuration list for PBXAggregateTarget "AMap3DMap-NO-IDFA" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1764,11 +1250,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A1A94DBC4284DCAFF692A764EFF209C7 /* Build configuration list for PBXAggregateTarget "AMapFoundation-NO-IDFA" */ = { + C2E882BA611C08B99AFF453B387FB2C2 /* Build configuration list for PBXAggregateTarget "AMapFoundation-NO-IDFA" */ = { isa = XCConfigurationList; buildConfigurations = ( - A3003A2D7E7B8B025955B30DE4D4340B /* Debug */, - 2B131D06A21388BEC03655FBFA68B198 /* Release */, + 7BB3D81AAC9EB818C249626A41588C41 /* Debug */, + 33FF65CC939DB2ACD3BF5B4E6E6F56D6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCDBF877017B428DCC77941BF6BFCE55 /* Build configuration list for PBXNativeTarget "Pods-suixinkan" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8076472B15CAFA346B2FBF304BD0B32C /* Debug */, + EB4999FBC2DB974780AA976726FD20A2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/MJRefresh/MJRefresh-Info.plist b/Pods/Target Support Files/MJRefresh/MJRefresh-Info.plist deleted file mode 100644 index 1b9a556..0000000 --- a/Pods/Target Support Files/MJRefresh/MJRefresh-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.7.9 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m b/Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m deleted file mode 100644 index d43259d..0000000 --- a/Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_MJRefresh : NSObject -@end -@implementation PodsDummy_MJRefresh -@end diff --git a/Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch b/Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Pods/Target Support Files/MJRefresh/MJRefresh-umbrella.h b/Pods/Target Support Files/MJRefresh/MJRefresh-umbrella.h deleted file mode 100644 index 7168200..0000000 --- a/Pods/Target Support Files/MJRefresh/MJRefresh-umbrella.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "MJRefreshAutoFooter.h" -#import "MJRefreshBackFooter.h" -#import "MJRefreshComponent.h" -#import "MJRefreshFooter.h" -#import "MJRefreshHeader.h" -#import "MJRefreshTrailer.h" -#import "MJRefreshAutoGifFooter.h" -#import "MJRefreshAutoNormalFooter.h" -#import "MJRefreshAutoStateFooter.h" -#import "MJRefreshBackGifFooter.h" -#import "MJRefreshBackNormalFooter.h" -#import "MJRefreshBackStateFooter.h" -#import "MJRefreshGifHeader.h" -#import "MJRefreshNormalHeader.h" -#import "MJRefreshStateHeader.h" -#import "MJRefreshNormalTrailer.h" -#import "MJRefreshStateTrailer.h" -#import "MJRefresh.h" -#import "MJRefreshConfig.h" -#import "MJRefreshConst.h" -#import "NSBundle+MJRefresh.h" -#import "UICollectionViewLayout+MJRefresh.h" -#import "UIScrollView+MJExtension.h" -#import "UIScrollView+MJRefresh.h" -#import "UIView+MJExtension.h" - -FOUNDATION_EXPORT double MJRefreshVersionNumber; -FOUNDATION_EXPORT const unsigned char MJRefreshVersionString[]; - diff --git a/Pods/Target Support Files/MJRefresh/MJRefresh.debug.xcconfig b/Pods/Target Support Files/MJRefresh/MJRefresh.debug.xcconfig deleted file mode 100644 index 68622eb..0000000 --- a/Pods/Target Support Files/MJRefresh/MJRefresh.debug.xcconfig +++ /dev/null @@ -1,12 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/MJRefresh/MJRefresh.modulemap b/Pods/Target Support Files/MJRefresh/MJRefresh.modulemap deleted file mode 100644 index ec3d85e..0000000 --- a/Pods/Target Support Files/MJRefresh/MJRefresh.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module MJRefresh { - umbrella header "MJRefresh-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/MJRefresh/MJRefresh.release.xcconfig b/Pods/Target Support Files/MJRefresh/MJRefresh.release.xcconfig deleted file mode 100644 index 68622eb..0000000 --- a/Pods/Target Support Files/MJRefresh/MJRefresh.release.xcconfig +++ /dev/null @@ -1,12 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist b/Pods/Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist deleted file mode 100644 index 84806d0..0000000 --- a/Pods/Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 3.7.9 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.markdown b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.markdown index dfa2184..9030f88 100644 --- a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.markdown @@ -20,27 +20,4 @@ Copyright © 2014 AutoNavi. All Rights Reserved. Copyright © 2014 AutoNavi. All Rights Reserved. - -## MJRefresh - -Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.plist b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.plist index 4f30d35..fea738c 100644 --- a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan-acknowledgements.plist @@ -56,35 +56,6 @@ Type PSGroupSpecifier - - FooterText - Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - License - MIT - Title - MJRefresh - Type - PSGroupSpecifier - FooterText Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.debug.xcconfig b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.debug.xcconfig index 2f7ca54..2854f5c 100644 --- a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.debug.xcconfig +++ b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.debug.xcconfig @@ -1,11 +1,10 @@ ARCHS = $(ARCHS_STANDARD) CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "MAMapKit" -framework "MJRefresh" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMap3DMap-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "MAMapKit" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMap3DMap-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.release.xcconfig b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.release.xcconfig index 2f7ca54..2854f5c 100644 --- a/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.release.xcconfig +++ b/Pods/Target Support Files/Pods-suixinkan/Pods-suixinkan.release.xcconfig @@ -1,11 +1,10 @@ ARCHS = $(ARCHS_STANDARD) CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "MAMapKit" -framework "MJRefresh" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMap3DMap-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "MAMapKit" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMap3DMap-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.debug.xcconfig b/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.debug.xcconfig index fa45b76..4caf83c 100644 --- a/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.debug.xcconfig @@ -1,9 +1,8 @@ ARCHS = $(ARCHS_STANDARD) CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "MJRefresh" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" +OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.release.xcconfig b/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.release.xcconfig index fa45b76..4caf83c 100644 --- a/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-suixinkanTests/Pods-suixinkanTests.release.xcconfig @@ -1,9 +1,8 @@ ARCHS = $(ARCHS_STANDARD) CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMap3DMap-NO-IDFA" "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "MJRefresh" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" +OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "GLKit" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/suixinkan.xcodeproj/project.pbxproj b/suixinkan.xcodeproj/project.pbxproj index 0959727..1af304d 100644 --- a/suixinkan.xcodeproj/project.pbxproj +++ b/suixinkan.xcodeproj/project.pbxproj @@ -64,11 +64,15 @@ }; A00000022FE9000000000002 /* suixinkanTests */ = { isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + ); path = suixinkanTests; sourceTree = ""; }; B00000022FEF000000000002 /* suixinkanUITests */ = { isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + ); path = suixinkanUITests; sourceTree = ""; }; @@ -158,7 +162,6 @@ 939AC7932FE3F832004B22E4 /* Frameworks */, 939AC7942FE3F832004B22E4 /* Resources */, 6F866A031F8EAF0CA7CF0E12 /* [CP] Copy Pods Resources */, - 68DE7BABFCA72C541E0F1F82 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -316,27 +319,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 68DE7BABFCA72C541E0F1F82 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-suixinkan/Pods-suixinkan-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-suixinkan/Pods-suixinkan-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-suixinkan/Pods-suixinkan-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 6F866A031F8EAF0CA7CF0E12 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -345,14 +327,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-suixinkan/Pods-suixinkan-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-suixinkan/Pods-suixinkan-resources-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-suixinkan/Pods-suixinkan-resources.sh\"\n"; diff --git a/suixinkan/App/suixinkanApp.swift b/suixinkan/App/suixinkanApp.swift index c17f864..cc91b63 100644 --- a/suixinkan/App/suixinkanApp.swift +++ b/suixinkan/App/suixinkanApp.swift @@ -14,7 +14,6 @@ struct suixinkanApp: App { init() { AppUITestLaunchState.resetIfNeeded() - MJRefreshSupport.configure() } var body: some Scene { diff --git a/suixinkan/Core/Core.md b/suixinkan/Core/Core.md index 04067c7..fe983cf 100644 --- a/suixinkan/Core/Core.md +++ b/suixinkan/Core/Core.md @@ -91,17 +91,3 @@ Toast UI 是顶部全宽横幅,背景使用不透明主色并延伸到顶部 - 上传进度只用于当前页面展示。 网络图片统一使用 `RemoteImage` / `RemoteAvatarImage`,内部由 Kingfisher 负责下载和缓存。业务页面不要再直接使用 `AsyncImage` 加载网络图片。 - -### MJRefresh - -项目通过 CocoaPods 集成 `MJRefresh`,并在 `Core/Design/MJRefreshSupport.swift` 提供 SwiftUI 桥接能力。App 启动时会调用 `MJRefreshSupport.configure()` 设置默认中文文案。 - -SwiftUI 列表如需使用 MJRefresh 风格的下拉刷新或上拉加载,可在 `ScrollView` / `List` 上使用: - -- `.mjRefresh(onRefresh:onLoadMore:hasMore:)` -- `.mjRefreshHeader { ... }` -- `.mjRefreshFooter(hasMore:action:)` - -桥接层会自动定位底层 `UIScrollView` 并绑定 header/footer。页面仍应把真正的数据加载逻辑放在 ViewModel 中,modifier 只负责触发刷新和结束 MJRefresh 动画。 - -若页面已经使用 SwiftUI 原生 `.refreshable`,不要重复叠加 MJRefresh 下拉刷新,避免双刷新冲突。 diff --git a/suixinkan/Core/Design/MJRefreshSupport.swift b/suixinkan/Core/Design/MJRefreshSupport.swift deleted file mode 100644 index d2321b0..0000000 --- a/suixinkan/Core/Design/MJRefreshSupport.swift +++ /dev/null @@ -1,205 +0,0 @@ -// -// MJRefreshSupport.swift -// suixinkan -// -// Created by Codex on 2026/6/26. -// - -import MJRefresh -import SwiftUI -import UIKit - -/// MJRefresh 全局配置入口,负责初始化第三方库默认行为。 -enum MJRefreshSupport { - /// 配置 MJRefresh 默认语言等全局选项。 - static func configure() { - MJRefreshConfig.default.languageCode = "zh-Hans" - } -} - -/// MJRefresh 绑定配置,描述下拉刷新和上拉加载行为。 -struct MJRefreshBindingConfiguration { - var onRefresh: (() async -> Void)? - var onLoadMore: (() async -> Void)? - var hasMore = false - - /// 判断当前配置是否包含任意刷新能力。 - var isEmpty: Bool { - onRefresh == nil && onLoadMore == nil - } -} - -extension View { - /// 为 SwiftUI `ScrollView` / `List` 绑定 MJRefresh 下拉刷新与上拉加载。 - func mjRefresh( - onRefresh: (() async -> Void)? = nil, - onLoadMore: (() async -> Void)? = nil, - hasMore: Bool = false - ) -> some View { - modifier( - MJRefreshModifier( - configuration: MJRefreshBindingConfiguration( - onRefresh: onRefresh, - onLoadMore: onLoadMore, - hasMore: hasMore - ) - ) - ) - } - - /// 为 SwiftUI 滚动容器仅绑定 MJRefresh 下拉刷新。 - func mjRefreshHeader(_ action: @escaping () async -> Void) -> some View { - mjRefresh(onRefresh: action) - } - - /// 为 SwiftUI 滚动容器仅绑定 MJRefresh 上拉加载更多。 - func mjRefreshFooter(hasMore: Bool, action: @escaping () async -> Void) -> some View { - mjRefresh(onLoadMore: action, hasMore: hasMore) - } -} - -/// SwiftUI 与 MJRefresh 的桥接修饰符,通过锚点视图定位底层 `UIScrollView`。 -private struct MJRefreshModifier: ViewModifier { - let configuration: MJRefreshBindingConfiguration - - func body(content: Content) -> some View { - content.background { - MJRefreshScrollAnchor(configuration: configuration) - .frame(width: 0, height: 0) - } - } -} - -/// 透明锚点视图,用于在 SwiftUI 滚动容器中查找并绑定 MJRefresh。 -private struct MJRefreshScrollAnchor: UIViewRepresentable { - let configuration: MJRefreshBindingConfiguration - - func makeCoordinator() -> Coordinator { - Coordinator() - } - - func makeUIView(context: Context) -> UIView { - let view = UIView(frame: .zero) - view.isUserInteractionEnabled = false - view.backgroundColor = .clear - return view - } - - func updateUIView(_ uiView: UIView, context: Context) { - context.coordinator.scheduleApply(configuration: configuration, from: uiView) - } - - static func dismantleUIView(_ uiView: UIView, coordinator: Coordinator) { - coordinator.unbind(from: uiView) - } - - /// MJRefresh 绑定协调器,负责创建、更新和释放 header/footer。 - final class Coordinator { - private weak var scrollView: UIScrollView? - private var configuration = MJRefreshBindingConfiguration() - private var pendingApply: DispatchWorkItem? - - /// 延迟到下一 runloop 绑定,确保 SwiftUI 已创建底层滚动视图。 - func scheduleApply(configuration: MJRefreshBindingConfiguration, from anchorView: UIView) { - pendingApply?.cancel() - let workItem = DispatchWorkItem { [weak self, weak anchorView] in - guard let self, let anchorView else { return } - guard let scrollView = anchorView.enclosingScrollView else { return } - self.apply(configuration: configuration, to: scrollView) - } - pendingApply = workItem - DispatchQueue.main.async(execute: workItem) - } - - /// 将最新配置应用到指定滚动视图。 - private func apply(configuration: MJRefreshBindingConfiguration, to scrollView: UIScrollView) { - self.scrollView = scrollView - self.configuration = configuration - - if configuration.isEmpty { - scrollView.mj_header = nil - scrollView.mj_footer = nil - return - } - - if let onRefresh = configuration.onRefresh { - if scrollView.mj_header == nil { - scrollView.mj_header = MJRefreshNormalHeader { [weak self] in - self?.performHeaderRefresh(onRefresh) - } - } - } else { - scrollView.mj_header = nil - } - - if let onLoadMore = configuration.onLoadMore { - if scrollView.mj_footer == nil { - scrollView.mj_footer = MJRefreshAutoNormalFooter { [weak self] in - self?.performFooterLoadMore(onLoadMore) - } - } - updateFooterState(hasMore: configuration.hasMore) - } else { - scrollView.mj_footer = nil - } - } - - /// 执行下拉刷新并在完成后结束 MJRefresh 动画。 - private func performHeaderRefresh(_ action: @escaping () async -> Void) { - Task { @MainActor in - await action() - await scrollView?.mj_header?.endRefreshing() - } - } - - /// 执行上拉加载并在完成后结束 MJRefresh 动画。 - private func performFooterLoadMore(_ action: @escaping () async -> Void) { - Task { @MainActor in - await action() - guard let scrollView else { return } - if configuration.hasMore { - await scrollView.mj_footer?.endRefreshing() - } else { - await scrollView.mj_footer?.endRefreshingWithNoMoreData() - } - } - } - - /// 根据是否还有更多数据更新 footer 状态。 - private func updateFooterState(hasMore: Bool) { - guard let footer = scrollView?.mj_footer else { return } - if hasMore { - footer.resetNoMoreData() - footer.isHidden = false - } else { - Task { @MainActor in - await footer.endRefreshingWithNoMoreData() - } - } - } - - /// 释放与锚点关联的 MJRefresh 组件。 - func unbind(from anchorView: UIView) { - pendingApply?.cancel() - pendingApply = nil - guard let scrollView = anchorView.enclosingScrollView, scrollView === self.scrollView else { return } - scrollView.mj_header = nil - scrollView.mj_footer = nil - self.scrollView = nil - } - } -} - -extension UIView { - /// 向上查找最近的 `UIScrollView`,供 SwiftUI 滚动容器桥接 MJRefresh。 - var enclosingScrollView: UIScrollView? { - var current: UIView? = self - while let view = current { - if let scrollView = view as? UIScrollView { - return scrollView - } - current = view.superview - } - return nil - } -} diff --git a/suixinkan/Features/Assets/ViewModels/AssetsViewModels.swift b/suixinkan/Features/Assets/ViewModels/AssetsViewModels.swift index b2e1100..5212ecc 100644 --- a/suixinkan/Features/Assets/ViewModels/AssetsViewModels.swift +++ b/suixinkan/Features/Assets/ViewModels/AssetsViewModels.swift @@ -63,7 +63,7 @@ final class CloudStorageViewModel: ObservableObject { @Published var searchText = "" @Published var selectedFilter: CloudDriveFilter = .all @Published var selectedSort: CloudDriveSort = .updatedDesc - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false @Published var isMutating = false @Published var errorMessage: String? @@ -267,9 +267,9 @@ final class MediaLibraryViewModel: ObservableObject { @Published var page = 1 @Published var keyword = "" @Published var selectedAuditFilter: MediaLibraryAuditFilter = .all - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false - @Published var isLoadingDetail = false + private var isLoadingDetail = false @Published var errorMessage: String? private let pageSize = 10 @@ -614,7 +614,7 @@ final class AlbumListViewModel: ObservableObject { @Published var searchText = "" @Published var startTime = "" @Published var endTime = "" - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false @Published var isMutating = false @Published var errorMessage: String? @@ -718,7 +718,7 @@ final class AlbumDetailViewModel: ObservableObject { @Published var selectedTab: AlbumFileTab = .image @Published var total = 0 @Published var page = 1 - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false @Published var isMutating = false @Published var errorMessage: String? @@ -862,7 +862,7 @@ final class AlbumTrailerViewModel: ObservableObject { @Published var selectedFolderId: Int? @Published var localFiles: [AlbumLocalUploadFile] = [] @Published var uploadProgress = 0 - @Published var isLoadingFolders = false + private var isLoadingFolders = false @Published var isSubmitting = false @Published var errorMessage: String? @Published var didUploadSuccessfully = false diff --git a/suixinkan/Features/LocationReport/ViewModels/LocationReportViewModels.swift b/suixinkan/Features/LocationReport/ViewModels/LocationReportViewModels.swift index 64eaeae..6c2956a 100644 --- a/suixinkan/Features/LocationReport/ViewModels/LocationReportViewModels.swift +++ b/suixinkan/Features/LocationReport/ViewModels/LocationReportViewModels.swift @@ -135,7 +135,7 @@ final class LocationReportHistoryViewModel: ObservableObject { @Published var endDate: Date? @Published var items: [LocationReportHistoryItem] = [] @Published var errorMessage: String? - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false @Published var total = 0 diff --git a/suixinkan/Features/Payment/ViewModels/PaymentViewModel.swift b/suixinkan/Features/Payment/ViewModels/PaymentViewModel.swift index c3eec91..ba626d1 100644 --- a/suixinkan/Features/Payment/ViewModels/PaymentViewModel.swift +++ b/suixinkan/Features/Payment/ViewModels/PaymentViewModel.swift @@ -20,8 +20,8 @@ final class PaymentCollectionViewModel: ObservableObject { @Published var remarkText = "" @Published var currentPayUrl = "" @Published var qrImage: UIImage? - @Published var isLoading = false - @Published var isPolling = false + private var isLoading = false + private var isPolling = false @Published var errorMessage: String? @Published var status: PaymentCollectionStatus = .idle @@ -193,7 +193,7 @@ private extension String { /// 收款记录 ViewModel,管理收款记录加载、日期分组和汇总兜底。 final class PaymentCollectionRecordViewModel: ObservableObject { @Published var groups: [PaymentCollectionRecordGroup] = [] - @Published var isLoading = false + private var isLoading = false @Published var errorMessage: String? /// 加载当前景区收款记录,无景区时不请求接口。 diff --git a/suixinkan/Features/Profile/ViewModels/ProfileViewModel.swift b/suixinkan/Features/Profile/ViewModels/ProfileViewModel.swift index 954cbf4..138490c 100644 --- a/suixinkan/Features/Profile/ViewModels/ProfileViewModel.swift +++ b/suixinkan/Features/Profile/ViewModels/ProfileViewModel.swift @@ -13,7 +13,7 @@ import Combine final class ProfileViewModel: ObservableObject { @Published var userInfo: UserInfoResponse? @Published var realNameInfo: RealNameInfo? - @Published var isLoading = false + private var isLoading = false @Published var isSaving = false @Published var isEditingProfile = false @Published var editingNickname = "" diff --git a/suixinkan/Features/PunchPoint/ViewModels/PunchPointViewModels.swift b/suixinkan/Features/PunchPoint/ViewModels/PunchPointViewModels.swift index 303e845..412cbc6 100644 --- a/suixinkan/Features/PunchPoint/ViewModels/PunchPointViewModels.swift +++ b/suixinkan/Features/PunchPoint/ViewModels/PunchPointViewModels.swift @@ -15,7 +15,7 @@ final class PunchPointListViewModel: ObservableObject { @Published var items: [PunchPointItem] = [] @Published var selectedDetail: PunchPointItem? @Published var errorMessage: String? - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false @Published var total = 0 diff --git a/suixinkan/Features/ScenicSettlement/ViewModels/ScenicSettlementViewModels.swift b/suixinkan/Features/ScenicSettlement/ViewModels/ScenicSettlementViewModels.swift index 7da143a..ea47b80 100644 --- a/suixinkan/Features/ScenicSettlement/ViewModels/ScenicSettlementViewModels.swift +++ b/suixinkan/Features/ScenicSettlement/ViewModels/ScenicSettlementViewModels.swift @@ -179,7 +179,7 @@ enum ScenicSettlementAmountValidation: Equatable { final class ScenicSettlementReviewViewModel: ObservableObject { @Published var scenicApplications: [ScenicApplicationPendingResponse] = [] @Published var roleApplications: [RoleApplyPendingResponse] = [] - @Published var isLoading = false + private var isLoading = false @Published var message: String? @Published var loadFailedAll = false @Published var scenicLoadFailed = false diff --git a/suixinkan/Features/Tasks/ViewModels/TaskCloudFileSelectionViewModel.swift b/suixinkan/Features/Tasks/ViewModels/TaskCloudFileSelectionViewModel.swift index 3d4045f..eaca427 100644 --- a/suixinkan/Features/Tasks/ViewModels/TaskCloudFileSelectionViewModel.swift +++ b/suixinkan/Features/Tasks/ViewModels/TaskCloudFileSelectionViewModel.swift @@ -39,7 +39,7 @@ final class TaskCloudFileSelectionViewModel: ObservableObject { @Published var searchText = "" @Published var selectedFilter: TaskCloudFileFilter = .all @Published var selectedFiles: [CloudDriveFile] = [] - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false @Published var errorMessage: String? diff --git a/suixinkan/Features/Tasks/ViewModels/TaskCreateViewModel.swift b/suixinkan/Features/Tasks/ViewModels/TaskCreateViewModel.swift index e9c1526..a1f06b8 100644 --- a/suixinkan/Features/Tasks/ViewModels/TaskCreateViewModel.swift +++ b/suixinkan/Features/Tasks/ViewModels/TaskCreateViewModel.swift @@ -51,7 +51,7 @@ final class TaskCreateViewModel: ObservableObject { @Published var availableOrders: [AvailableOrderResponse] = [] @Published var selectedCloudFiles: [TaskCloudSelectionItem] = [] @Published var selectedLocalFiles: [TaskLocalUploadItem] = [] - @Published var isLoadingOrders = false + private(set) var isLoadingOrders = false @Published var isSubmitting = false @Published var errorMessage: String? @Published var didSubmitSuccessfully = false diff --git a/suixinkan/Features/Tasks/ViewModels/TaskManagementViewModel.swift b/suixinkan/Features/Tasks/ViewModels/TaskManagementViewModel.swift index cd3d214..fe03c21 100644 --- a/suixinkan/Features/Tasks/ViewModels/TaskManagementViewModel.swift +++ b/suixinkan/Features/Tasks/ViewModels/TaskManagementViewModel.swift @@ -38,7 +38,7 @@ enum TaskStatusFilter: Int, CaseIterable, Identifiable { /// 任务管理 ViewModel,负责任务列表、筛选、分页和错误状态。 @MainActor final class TaskManagementViewModel: ObservableObject { - @Published var isLoading = false + private var isLoading = false @Published var isLoadingMore = false @Published var tasks: [PhotographerTaskItem] = [] @Published var total = 0 @@ -146,7 +146,7 @@ final class TaskManagementViewModel: ObservableObject { /// 任务详情 ViewModel,负责详情加载和列表摘要兜底展示。 @MainActor final class TaskDetailViewModel: ObservableObject { - @Published var isLoading = false + private var isLoading = false @Published var detail: TaskDetailResponse? @Published var errorMessage: String? diff --git a/suixinkan/Features/Wallet/ViewModels/WalletViewModels.swift b/suixinkan/Features/Wallet/ViewModels/WalletViewModels.swift index e600ce2..c162cb0 100644 --- a/suixinkan/Features/Wallet/ViewModels/WalletViewModels.swift +++ b/suixinkan/Features/Wallet/ViewModels/WalletViewModels.swift @@ -229,7 +229,7 @@ final class WithdrawApplyViewModel: ObservableObject { @Published var info: WithdrawInfoResponse? @Published var amountText = "" @Published var smsCode = "" - @Published var isLoading = false + private var isLoading = false @Published var isSubmitting = false @Published var smsCountdown = 0 @Published var errorMessage: String? @@ -309,7 +309,7 @@ final class WithdrawalSettingsViewModel: ObservableObject { @Published var frontImageURL = "" @Published var backImageURL = "" @Published var uploadProgress = 0 - @Published var isLoading = false + private var isLoading = false @Published var isSubmitting = false @Published var smsCountdown = 0 @Published var errorMessage: String? @@ -442,7 +442,7 @@ final class PointsRedemptionViewModel: ObservableObject { @Published var overview = PointOverviewResponse() @Published var records: [PointWithdrawItem] = [] @Published var pointsText = "" - @Published var isLoading = false + private var isLoading = false @Published var isSubmitting = false @Published var errorMessage: String? diff --git a/suixinkanTests/MJRefreshSupportTests.swift b/suixinkanTests/MJRefreshSupportTests.swift deleted file mode 100644 index 12a1cc1..0000000 --- a/suixinkanTests/MJRefreshSupportTests.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// MJRefreshSupportTests.swift -// suixinkanTests -// -// Created by Codex on 2026/6/26. -// - -import XCTest -@testable import suixinkan - -/// MJRefresh SwiftUI 桥接测试,覆盖滚动视图查找辅助逻辑。 -final class MJRefreshSupportTests: XCTestCase { - /// 测试锚点视图能向上找到最近的 UIScrollView。 - func testEnclosingScrollViewFindsParentScrollView() { - let scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: 320, height: 480)) - let container = UIView(frame: scrollView.bounds) - let anchor = UIView(frame: .zero) - scrollView.addSubview(container) - container.addSubview(anchor) - - XCTAssertIdentical(anchor.enclosingScrollView, scrollView) - } - - /// 测试没有父级 ScrollView 时返回 nil。 - func testEnclosingScrollViewReturnsNilWithoutScrollView() { - let view = UIView(frame: .zero) - XCTAssertNil(view.enclosingScrollView) - } -} - -extension MJRefreshSupportTests { - /// 断言两个对象引用相同。 - fileprivate func XCTAssertIdentical(_ expression1: AnyObject?, _ expression2: AnyObject?, file: StaticString = #filePath, line: UInt = #line) { - if expression1 !== expression2 { - XCTFail("Expected identical objects", file: file, line: line) - } - } -}