MJRefresh框架 实现上拉和下拉刷新
1. 添加头部控件的方法
[self.tableView addHeaderWithTarget:self action:@selector(headerRereshing)];
或者
[self.tableView addHeaderWithCallback:^{ }];
2. 添加尾部控件的方法
[self.tableView addFooterWithTarget:self action:@selector(footerRereshing)];
或者
[self.tableView addFooterWithCallback:^{ }];
3. 可以在MJRefreshConst.h和MJRefreshConst.m文件中自定义显示的文字内容和文字颜色
4. 本框架兼容iOS6\iOS7,iPhone\iPad横竖屏
5.自动进入刷新状态
1> [self.tableView headerBeginRefreshing];
2> [self.tableView footerBeginRefreshing];
6.结束刷新
1> [self.tableView headerEndRefreshing];
2> [self.tableView footerEndRefreshing];
1. #import "HomeViewController.h"
2. #import "MJRefresh.h"
3.
4. @interface HomeViewController ()<UITableViewDataSource,UITableViewDelegate,MJRefreshBaseViewDelegate>
5. {
6. MJRefreshHeaderView *_header;
7. MJRefreshFooterView *_footer;
8.
9. }
10.
11. @property (nonatomic ,retain) UITableView *mainTableView;
12. @property (nonatomic ,retain) NSMutableArray *mainDataList;
13.
14. @end
15.
16. @implementation HomeViewController
17. @synthesize mainTableView,mainDataList;
18.
19. /************无数据源 数据源部分自己写************/
20. - (void)viewDidLoad
21. {
22. [super viewDidLoad];
23. mainTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) style:UITableViewStylePlain];
24. mainTableView.delegate = self;
25. mainTableView.dataSource = self;
26. [self.view addSubview:mainTableView];
27. mainDataList = [[NSMutableArray alloc]init];
28. // 刷新功能
29. _header = [[MJRefreshHeaderView alloc] init];
30. _header.delegate = self;
31. _header.scrollView = mainTableView;
32. //添加上拉加载更多
33. _footer = [[MJRefreshFooterView alloc] init];
34. _footer.delegate = self;
35. _footer.scrollView = mainTableView;
36. }
37. #pragma mark 代理方法-进入刷新状态就会调用
38. - (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView
39. {
40. NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
41. formatter.dateFormat = @"HH : mm : ss.SSS";
42. if (_header == refreshView)
43. {
44. //下拉刷新数据请求********************************
45. // 2秒后刷新表格
46. [self performSelector:@selector(reloadDeals) withObject:nil afterDelay:2];
47.
48. } else {
49. //上拉刷新数据请求**************************************
50. // 2秒后刷新表格
51. [self performSelector:@selector(reloadDeals) withObject:nil afterDelay:2];
52. }
53. }
54.
55. - (void)reloadDeals
56. {
57. [mainTableView reloadData];
58. // 结束刷新状态
59. [_header endRefreshing];
60. [_footer endRefreshing];
61. }
62.
63.
64. -(NSInteger )tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
65. {
66. return mainDataList.count;
67. }
68.
69. -(CGFloat )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
70. {
71. return 40;
72. }
73. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
74. {
75. static NSString *cellindentifier = @"cell";
76. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellindentifier];
77. if (!cell) {
78. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellindentifier];
79. }
80. return cell;
81.
82. }
83.
84. - (void)didReceiveMemoryWarning
85. {
86. [super didReceiveMemoryWarning];
87. // Dispose of any resources that can be recreated.
88. }
89.
@end