ScrollRefreshViewController.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //
  2. // ScrollRefreshViewController.h
  3. //
  4. // @author Shiki
  5. //
  6. #import "ScrollBaseViewController.h"
  7. #import "RefreshAbleView.h"
  8. #import "BaseViewController.h"
  9. @interface ScrollRefreshViewController : BaseViewController<UIScrollViewDelegate>
  10. {
  11. @protected
  12. BOOL _canLoadMore;
  13. BOOL _canRefresh;
  14. @protected
  15. BOOL _isDragging;
  16. BOOL _isRefreshing;
  17. BOOL _isLoadingMore;
  18. @protected
  19. UIView *_noDataView;
  20. UIView<RefreshAbleView> *_headerView;
  21. UIView<RefreshAbleView> *_footerView;
  22. }
  23. // 下拉刷新
  24. @property (nonatomic, strong) UIView<RefreshAbleView> *headerView;
  25. @property (nonatomic, weak) UIScrollView *refreshScrollView;
  26. // 上拉加载更多
  27. @property (nonatomic, strong) UIView<RefreshAbleView> *footerView;
  28. @property (nonatomic, readonly) BOOL isDragging; // 是否在drag
  29. @property (nonatomic, readonly) BOOL isRefreshing; // 是否正在下拉刷新
  30. @property (nonatomic, readonly) BOOL isLoadingMore; // 是否正在加载更多
  31. @property (nonatomic, assign) BOOL canLoadMore; // 是否加载更多
  32. @property (nonatomic, assign) BOOL canRefresh; // 是否可以下接刷新
  33. - (void)initialize;
  34. - (void)addRefreshScrollView;
  35. - (void)addHeaderView;
  36. - (void)addFooterView;
  37. - (void)layoutRefreshScrollView;
  38. - (void)layoutHeaderRefreshView;
  39. - (void)layoutFooterRefreshView;
  40. // refreshheader 高度
  41. - (CGFloat)headerRefreshHeight;
  42. // 用于代码刷新
  43. - (void)pinHeaderAndRefresh;
  44. // 下拉刷新
  45. - (void)pinHeaderView;
  46. // 停止下接刷新
  47. - (void)unpinHeaderView;
  48. // 将要下拉刷新
  49. - (void)willBeginRefresh;
  50. // 刷新
  51. - (BOOL)refresh;
  52. - (void)onRefresh;
  53. // 下拉刷新完成
  54. - (void)refreshCompleted;
  55. #pragma mark - Load More
  56. // footview的高度
  57. - (CGFloat)footerLoadMoreHeight;
  58. // 加载更多
  59. - (BOOL)loadMore;
  60. - (void)onLoadMore;
  61. // 将要加载更多
  62. - (void)willBeginLoadingMore;
  63. // 加载更多成时
  64. - (void)loadMoreCompleted;
  65. // 隐藏footview;
  66. // YES 可见,NO不可见
  67. - (void)setFooterViewVisibility:(BOOL)visible;
  68. // 所有刷新都完成时
  69. - (void)allLoadingCompleted;
  70. - (void)reloadData;
  71. - (void)addNoDataView;
  72. - (void)showNoDataView;
  73. - (BOOL)hasData;
  74. @end