IOS开发(11)IOS MJRefresh 控件demo
2018-03-12 11:48
846 查看
这个控件真的挺好用的,对于我来说,前期能回使用就够了,项目已经满足要求了。使用这个控件首先导入这个库的相关内容
MJRefresh下载地址
https://github.com/CoderMJLee/MJRefresh
MJRefresh截图:
项目截图:
项目中添加代码,运行即可
MJRefresh下载地址
https://github.com/CoderMJLee/MJRefresh
MJRefresh截图:
项目截图:
项目中添加代码,运行即可
// // ViewController.m // 02-上拉加载下拉刷新 // // Created by witsystem on 2018/3/12. // Copyright © 2018年 witsystem. All rights reserved. // #import "ViewController.h" //导入第三方库 #import "MJRefresh.h" #define SCREEN_W [UIScreen mainScreen].bounds.size.width #define SCREEN_H [UIScreen mainScreen].bounds.size.height @interface ViewController () <UITableViewDelegate , UITableViewDataSource> @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSMutableArray *data; @end @implementation ViewController #pragma mark -- create tableView - (void) createTableView { _tableView = [[UITableView alloc] initWithFrame: CGRectMake(0, 20, SCREEN_W, SCREEN_H - 20)]; _tableView.backgroundColor = [UIColor cyanColor]; _tableView.delegate = self; _tableView.dataSource = self; //统一设置高度 _tableView.rowHeight = 80; [self.view addSubview: _tableView]; } #pragma mark -- dataSource - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return _data.count; } - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellId = @"cellId"; UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:cellId]; if(!cell){ cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier: cellId]; } cell.textLabel.text = _data[indexPath.row]; return cell; } #pragma mark -- 上拉加载下拉刷新方法 - (void) addMJRefresh { //添加上拉与下拉的效果 //下拉 触发加载刷新界面 MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ //下拉结束回调,一般写请求网络数据 [self reloadData]; //停止刷新 [_tableView.mj_header endRefreshing]; }]; //上拉 触发加载更多 MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ //上拉结束回调,一般写请求网络数据 [self loadMoreData]; //停止刷新 [_tableView.mj_footer endRefreshing]; }]; //设置文字 [header setTitle: @"1111" forState: MJRefreshStatePulling]; [header setTitle: @"2222" forState: MJRefreshStateRefreshing]; _tableView.mj_header = header; [footer setTitle: @"3333" forState: MJRefreshStatePulling]; _tableView.mj_footer = footer; } #pragma mark -- reloadData -(void) reloadData { if(!_data){ _data = [NSMutableArray array]; }else{ [_data removeAllObjects]; } //模拟网络加载时间 sleep(1); for (int i=0; i<10; i++) { NSString *title = [NSString stringWithFormat:@"title-00%d", i+1]; [_data addObject: title]; } [_tableView reloadData]; } #pragma mark -- loadMoreData -(void) loadMoreData { int count = (int)_data.count; sleep(1); for (int i=0; i<10; i++) { NSString *title = [NSString stringWithFormat:@"title-00%d", i+count]; [_data addObject: title]; } [self.tableView reloadData]; } #pragma mark -- 控制器方法 - (void)viewDidLoad { [super viewDidLoad]; [self createTableView]; [self addMJRefresh]; } #pragma mark 视图即将加入窗口时调用,解决第一次加载数据的问题 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear: animated]; [self reloadData]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
相关文章推荐
- iOS开发11:UIPickerView控件(1)
- iOS开发11:UIPickerView控件(1)
- 【iOS基础控件 - 11】【Demo】模仿qq ,微信 UI 聊天界面
- 【11/02】 iOS开发成长之路,【控件初始化方法封】
- 【IOS 开发学习总结-OC-53】★★ios开发UI 控件——UISearchBar与UISearchDisplayController
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
- 黑马程序员——iOS 开发学习---控件制作登录注册页面
- 03.WebView演练-iOS开发Demo(示例程序)源代码
- iOS开发UI篇—UITableview控件简单介绍
- iOS开发-UI控件:关于使用UISearchDisplayController
- 【IOS 开发学习总结-OC-54】★★ios开发UI 控件——UINavigationBar 与UINavigationController
- IOS开发入门(11)-导航控制器(1)
- iOS开发UI篇—UIScrollView控件实现图片轮播
- iOS 开发中获取控件的坐标并修改
- iOS 开发笔记 <我的坐标demo>
- iOS应用开发视频教程笔记(十四)Core Data Demo
- ios开发 断点测试时,所有控件都变为nil
- 【iOS开发-88】事件传递原理解释哪个控件处理事件以及响应者链条的介绍
- iOS开发UI篇—UITableview控件简单介绍
- iOS开发UI基础—手写控件,frame,center和bounds属性