MJRefreshFooter.m 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // 代码地址: https://github.com/CoderMJLee/MJRefresh
  2. // MJRefreshFooter.m
  3. // MJRefreshExample
  4. //
  5. // Created by MJ Lee on 15/3/5.
  6. // Copyright (c) 2015年 小码哥. All rights reserved.
  7. //
  8. #import "MJRefreshFooter.h"
  9. #include "UIScrollView+MJRefresh.h"
  10. @interface MJRefreshFooter()
  11. @end
  12. @implementation MJRefreshFooter
  13. #pragma mark - 构造方法
  14. + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentAction)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 = NO;
  34. }
  35. #pragma mark . 链式语法部分 .
  36. - (instancetype)assignTo:(UIScrollView *)scrollView {
  37. scrollView.mj_footer = self;
  38. return self;
  39. }
  40. #pragma mark - 公共方法
  41. - (void)endRefreshingWithNoMoreData
  42. {
  43. MJRefreshDispatchAsyncOnMainQueue(self.state = MJRefreshStateNoMoreData;)
  44. }
  45. - (void)noticeNoMoreData
  46. {
  47. [self endRefreshingWithNoMoreData];
  48. }
  49. - (void)resetNoMoreData
  50. {
  51. MJRefreshDispatchAsyncOnMainQueue(self.state = MJRefreshStateIdle;)
  52. }
  53. - (void)setAutomaticallyHidden:(BOOL)automaticallyHidden
  54. {
  55. _automaticallyHidden = automaticallyHidden;
  56. }
  57. @end