2
0

MJDIYAutoFooter.m 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //
  2. // MJDIYAutoFooter.m
  3. // MJRefreshExample
  4. //
  5. // Created by MJ Lee on 15/6/13.
  6. // Copyright © 2015年 小码哥. All rights reserved.
  7. //
  8. #import "MJDIYAutoFooter.h"
  9. @interface MJDIYAutoFooter()
  10. @property (weak, nonatomic) UILabel *label;
  11. @property (weak, nonatomic) UISwitch *s;
  12. @property (weak, nonatomic) UIActivityIndicatorView *loading;
  13. @end
  14. @implementation MJDIYAutoFooter
  15. #pragma mark - 重写方法
  16. #pragma mark 在这里做一些初始化配置(比如添加子控件)
  17. - (void)prepare
  18. {
  19. [super prepare];
  20. // 设置控件的高度
  21. self.mj_h = 50;
  22. // 添加label
  23. UILabel *label = [[UILabel alloc] init];
  24. label.textColor = [UIColor colorWithRed:1.0 green:0.5 blue:0.0 alpha:1.0];
  25. label.font = [UIFont boldSystemFontOfSize:16];
  26. label.textAlignment = NSTextAlignmentCenter;
  27. [self addSubview:label];
  28. self.label = label;
  29. // 打酱油的开关
  30. UISwitch *s = [[UISwitch alloc] init];
  31. [self addSubview:s];
  32. self.s = s;
  33. // loading
  34. UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
  35. [self addSubview:loading];
  36. self.loading = loading;
  37. }
  38. #pragma mark 在这里设置子控件的位置和尺寸
  39. - (void)placeSubviews
  40. {
  41. [super placeSubviews];
  42. self.label.frame = self.bounds;
  43. self.s.center = CGPointMake(self.mj_w - 20, self.mj_h - 20);
  44. self.loading.center = CGPointMake(30, self.mj_h * 0.5);
  45. }
  46. #pragma mark 监听scrollView的contentOffset改变
  47. - (void)scrollViewContentOffsetDidChange:(NSDictionary *)change
  48. {
  49. [super scrollViewContentOffsetDidChange:change];
  50. }
  51. #pragma mark 监听scrollView的contentSize改变
  52. - (void)scrollViewContentSizeDidChange:(NSDictionary *)change
  53. {
  54. [super scrollViewContentSizeDidChange:change];
  55. }
  56. #pragma mark 监听scrollView的拖拽状态改变
  57. - (void)scrollViewPanStateDidChange:(NSDictionary *)change
  58. {
  59. [super scrollViewPanStateDidChange:change];
  60. }
  61. #pragma mark 监听控件的刷新状态
  62. - (void)setState:(MJRefreshState)state
  63. {
  64. MJRefreshCheckState;
  65. switch (state) {
  66. case MJRefreshStateIdle:
  67. self.label.text = @"赶紧上拉吖(开关是打酱油滴)";
  68. [self.loading stopAnimating];
  69. [self.s setOn:NO animated:YES];
  70. break;
  71. case MJRefreshStateRefreshing:
  72. [self.s setOn:YES animated:YES];
  73. self.label.text = @"加载数据中(开关是打酱油滴)";
  74. [self.loading startAnimating];
  75. break;
  76. case MJRefreshStateNoMoreData:
  77. self.label.text = @"木有数据了(开关是打酱油滴)";
  78. [self.s setOn:NO animated:YES];
  79. [self.loading stopAnimating];
  80. break;
  81. default:
  82. break;
  83. }
  84. }
  85. @end