MJRefreshFooter.m 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // 代码地址: https://github.com/CoderMJLee/MJRefresh
  2. // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
  3. // MJRefreshFooter.m
  4. // MJRefreshExample
  5. //
  6. // Created by MJ Lee on 15/3/5.
  7. // Copyright (c) 2015年 小码哥. All rights reserved.
  8. //
  9. #import "MJRefreshFooter.h"
  10. @interface MJRefreshFooter()
  11. @end
  12. @implementation MJRefreshFooter
  13. #pragma mark - 构造方法
  14. + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock
  15. {
  16. MJRefreshFooter *cmp = [[self alloc] init];
  17. cmp.refreshingBlock = refreshingBlock;
  18. return cmp;
  19. }
  20. + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action
  21. {
  22. MJRefreshFooter *cmp = [[self alloc] init];
  23. [cmp setRefreshingTarget:target refreshingAction:action];
  24. return cmp;
  25. }
  26. #pragma mark - 重写父类的方法
  27. - (void)prepare
  28. {
  29. [super prepare];
  30. // 设置自己的高度
  31. self.mj_h = MJRefreshFooterHeight;
  32. // 默认是自动隐藏
  33. self.automaticallyHidden = YES;
  34. }
  35. - (void)willMoveToSuperview:(UIView *)newSuperview
  36. {
  37. [super willMoveToSuperview:newSuperview];
  38. if (newSuperview) {
  39. // 监听scrollView数据的变化
  40. [self.scrollView setReloadDataBlock:^(NSInteger totalDataCount) {
  41. if (self.isAutomaticallyHidden) {
  42. self.hidden = (self.scrollView.totalDataCount == 0);
  43. }
  44. }];
  45. }
  46. }
  47. #pragma mark - 公共方法
  48. - (void)noticeNoMoreData
  49. {
  50. self.state = MJRefreshStateNoMoreData;
  51. }
  52. - (void)resetNoMoreData
  53. {
  54. self.state = MJRefreshStateIdle;
  55. }
  56. @end