RefreshView.m 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // RefreshView.m
  3. // CommonLibrary
  4. //
  5. // Created by Alexi on 15-2-4.
  6. // Copyright (c) 2015年 Alexi Chen. All rights reserved.
  7. //
  8. #define kDefaultCellHeight 50
  9. #import "RefreshView.h"
  10. @implementation HeadRefreshView
  11. - (instancetype)initWithFrame:(CGRect)frame
  12. {
  13. if (self = [super initWithFrame:frame])
  14. {
  15. self.refreshHeight = kDefaultCellHeight;
  16. }
  17. return self;
  18. }
  19. - (void)addOwnViews
  20. {
  21. _loading = [[UILabel alloc] init];
  22. _loading.textAlignment = NSTextAlignmentCenter;
  23. _loading.textColor = kAppGrayColor2;
  24. _loading.font = kAppSmallTextFont;
  25. [self addSubview:_loading];
  26. _indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
  27. [self addSubview:_indicator];
  28. self.backgroundColor = RGB(230, 230, 230);
  29. }
  30. - (void)relayoutFrameOfSubViews
  31. {
  32. CGRect rect = self.bounds;
  33. rect.origin.y += rect.size.height - self.refreshHeight;
  34. rect.size.height = self.refreshHeight;
  35. _loading.frame = rect;
  36. _indicator.frame = CGRectInset(rect, (rect.size.width - 30)/2, (rect.size.height - 30)/2);
  37. }
  38. - (void)willLoading
  39. {
  40. if (_state == EWillLoading)
  41. {
  42. return;
  43. }
  44. _loading.hidden = NO;
  45. _indicator.hidden = YES;
  46. _loading.text = ASLocalizedString(@"下拉即可刷新");
  47. _state = EWillLoading;
  48. }
  49. - (void)releaseLoading
  50. {
  51. if (_state == EReleaseLoading)
  52. {
  53. return;
  54. }
  55. _loading.hidden = NO;
  56. _indicator.hidden = YES;
  57. _loading.text = ASLocalizedString(@"松开即可更新");
  58. _state = EReleaseLoading;
  59. }
  60. - (void)loading
  61. {
  62. if (_state == ELoading)
  63. {
  64. return;
  65. }
  66. _loading.hidden = YES;
  67. _indicator.hidden = NO;
  68. [_indicator startAnimating];
  69. _state = ELoading;
  70. }
  71. - (void)loadingOver
  72. {
  73. if (_state == ELoadingOver)
  74. {
  75. return;
  76. }
  77. dispatch_async( dispatch_get_main_queue(), ^{
  78. _loading.hidden = YES;
  79. if ([_indicator isAnimating])
  80. {
  81. [_indicator stopAnimating];
  82. _indicator.hidden = YES;
  83. }
  84. _state = ELoadingOver;
  85. });
  86. }
  87. @end
  88. @implementation FootRefreshView
  89. - (void)willLoading
  90. {
  91. if (_state == EWillLoading)
  92. {
  93. return;
  94. }
  95. _loading.hidden = NO;
  96. _indicator.hidden = YES;
  97. _loading.text = ASLocalizedString(@"上拉即可刷新");
  98. _state = EWillLoading;
  99. }
  100. - (void)relayoutFrameOfSubViews
  101. {
  102. CGRect rect = self.bounds;
  103. rect.size.height = self.refreshHeight;
  104. _loading.frame = rect;
  105. _indicator.frame = CGRectInset(rect, (rect.size.width - 30)/2, (rect.size.height - 30)/2);
  106. }
  107. @end