STRefresh.m 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. //
  2. // STRefresh.m
  3. // STImgPickerC
  4. //
  5. // Created by 岳克奎 on 17/3/25.
  6. // Copyright © 2017年 SlienceTeam. All rights reserved.
  7. //
  8. #import "STRefresh.h"
  9. @implementation STRefresh
  10. #pragma mark ********************* left cycle ********************
  11. /*
  12. static STRefresh *signleton = nil;
  13. + (instancetype)allocWithZone:(struct _NSZone *)zone
  14. {
  15. static dispatch_once_t onceToken;
  16. dispatch_once(&onceToken, ^{
  17. signleton = [super allocWithZone:zone];
  18. });
  19. return signleton;
  20. }
  21. + (STRefresh *)shareManager
  22. {
  23. static dispatch_once_t onceToken;
  24. dispatch_once(&onceToken, ^{
  25. signleton = [[self alloc] init];
  26. });
  27. return signleton;
  28. }
  29. + (id)copyWithZone:(struct _NSZone *)zone
  30. {
  31. return signleton;
  32. }
  33. + (id)mutableCopyWithZone:(struct _NSZone *)zone
  34. {
  35. return signleton;
  36. }*/
  37. - (instancetype)init {
  38. if (self = [super init]) {
  39. }
  40. return self;
  41. }
  42. #pragma mark ********************* Public ************************
  43. #pragma mark ------ load STRefresh
  44. -(void)showSTRefreshTableView:(UITableView *)tableView
  45. andSTRefreshType:(STRefreshType)stRefreshType
  46. andSTRefreshHeaderType:(STRefreshHeaderType )stRefreshHeaderType
  47. andSTRefreshTimeLabHidden:(BOOL)timeLabHidden
  48. andSTRefreshStateLabHidden:(BOOL)stateLabHidden
  49. andDropDownBlock:(void(^)(void))dropDownBlock
  50. andDropUpBlock:(void(^)(void))dropUpBlock{
  51. #pragma mark - Drop Down
  52. //STRefreshTypeDefault
  53. if (stRefreshType == STRefreshTypeDefault ||stRefreshType ==STRefreshTypeDropDown) {
  54. //block
  55. self.stRefreshDropDownBlock = dropDownBlock;
  56. if (stRefreshHeaderType == STRefreshHeaderTypeNormal) {
  57. //_normalheader
  58. if (!_normalheader) {
  59. [self normalheader];
  60. }
  61. _normalheader.lastUpdatedTimeLabel.hidden = timeLabHidden;
  62. _normalheader.stateLabel.hidden = stateLabHidden;
  63. tableView.mj_header = _normalheader;
  64. tableView.mj_header.automaticallyChangeAlpha = YES;
  65. }
  66. //STRefreshHeaderTypeGif
  67. else{
  68. if (!_gifHeader) {
  69. [self gifHeader];
  70. }
  71. [self idleImgMArray];
  72. [self pullingImgMArray];
  73. [self refreshingImgMArray];
  74. //_gifHeader animation
  75. [_gifHeader setImages:_idleImgMArray
  76. forState:MJRefreshStateIdle];
  77. [_gifHeader setImages:_pullingImgMArray
  78. forState:MJRefreshStatePulling];
  79. [_gifHeader setImages:_refreshingImgMArray
  80. forState:MJRefreshStateRefreshing];
  81. _gifHeader.lastUpdatedTimeLabel.hidden = timeLabHidden;
  82. _gifHeader.stateLabel.hidden = stateLabHidden;
  83. tableView.mj_header = _gifHeader;
  84. }
  85. }
  86. #pragma mark - Drop Up
  87. if (stRefreshType == STRefreshTypeDefault || stRefreshType == STRefreshTypeDropUp) {
  88. //block
  89. self.stRefreshDropUpBlock = dropUpBlock;
  90. if (!_footer) {
  91. [self footer];
  92. }
  93. tableView.mj_footer = _footer;
  94. }
  95. }
  96. #pragma mark ********************* Getter ************************
  97. -(NSMutableArray <UIImage *>*)idleImgMArray{
  98. if (!_idleImgMArray) {
  99. _idleImgMArray= @[ [UIImage imageNamed:@"ic_pull_refresh_normal"]].mutableCopy;
  100. }
  101. return _idleImgMArray;
  102. }
  103. -(NSMutableArray <UIImage *>*)pullingImgMArray{
  104. if (!_pullingImgMArray) {
  105. _pullingImgMArray= @[ [UIImage imageNamed:@"ic_pull_refresh_ready"]].mutableCopy;
  106. }
  107. return _pullingImgMArray;
  108. }
  109. -(NSMutableArray <UIImage *>*)refreshingImgMArray{
  110. if (!_refreshingImgMArray) {
  111. _refreshingImgMArray = @[].mutableCopy;
  112. for (NSUInteger i = 0; i<9; i++) {
  113. UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"ic_pull_refresh_progress%ld", i]];
  114. [_refreshingImgMArray addObject:image];
  115. }
  116. }
  117. return _refreshingImgMArray;
  118. }
  119. #pragma mark ********************* Setter ************************
  120. #pragma mark -- RefreshingImgMArray
  121. #pragma mark -- normalheader
  122. -(MJRefreshNormalHeader *)normalheader{
  123. if (!_normalheader) {
  124. _normalheader = [MJRefreshNormalHeader headerWithRefreshingTarget:self
  125. refreshingAction:@selector(dropDownBlockAction)];
  126. }
  127. return _normalheader;
  128. }
  129. #pragma mark -- gifHeader
  130. -(MJRefreshGifHeader *)gifHeader{
  131. if (!_gifHeader) {
  132. _gifHeader = [MJRefreshGifHeader headerWithRefreshingTarget:self
  133. refreshingAction:@selector(dropDownBlockAction)];
  134. }
  135. return _gifHeader;
  136. }
  137. #pragma mark -- footer
  138. -(MJRefreshAutoNormalFooter *)footer{
  139. if (!_footer) {
  140. _footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self
  141. refreshingAction:@selector(dropUpBlockAction)];
  142. }
  143. return _footer;
  144. }
  145. #pragma mark ********************* Peivate ************************
  146. #pragma mark -- drop Down blcok
  147. -(void)dropDownBlockAction{
  148. if (_stRefreshDropDownBlock) {
  149. _stRefreshDropDownBlock();
  150. }
  151. }
  152. #pragma mark -- drop up blcok
  153. -(void)dropUpBlockAction{
  154. if (_stRefreshDropUpBlock) {
  155. _stRefreshDropUpBlock();
  156. }
  157. }
  158. @end