上拉刷新,下拉加载

#import "AppDelegate.h"

#import "MyTableViewController.h"

@interfaceAppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];

UINavigationController *nvc = [[UINavigationControlleralloc]initWithRootViewController:[[MyTableViewControlleralloc]init]];

self.window.rootViewController = nvc;

[self.windowmakeKeyAndVisible];

returnYES;

}

#import "MyTableViewController.h"

#import "myTableViewCell.h"

#import "UIImageView+WebCache.h"

#import "MJRefresh.h"

NSString *const MJTableViewCellIdentifier = @"Cell";

#define str @"http://apis.juhe.cn/cook/index"

@interfaceMyTableViewController ()<UITableViewDataSource,UITableViewDelegate>

{

NSMutableArray *array;

NSMutableArray *arr;

NSArray *arr1;

MyTableViewController *tabel;

}

@property (strong, nonatomic) NSArray *fakeData;

@end

@implementation MyTableViewController

int i;

- (void)viewDidLoad {

[superviewDidLoad];

self.view.backgroundColor = [UIColorwhiteColor];

//2.集成刷新控件

self.tableView.rowHeight = 130;

//self.tableView.bounces = NO;

self.tableView.showsVerticalScrollIndicator = NO;

[selfsetupRefresh];

array = [NSMutableArrayarrayWithCapacity:10];

NSString *  str1 = [strstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:str1];

NSMutableURLRequest *requst = [NSMutableURLRequestrequestWithURL:url cachePolicy:0timeoutInterval:10];

NSString *data = [NSStringstringWithFormat:@"key=%@&cid=%@&rn=%@",@"3b6ef5c9c2f3dbed7d7d693df8a137cd",@"1",@"30"];

NSData *data1 = [data dataUsingEncoding:NSUTF8StringEncoding];

[requst setHTTPBody:data1];

[requst setHTTPMethod:@"POST"];

[NSURLConnection sendAsynchronousRequest:requst queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data1, NSError *connectionError) {

//解析失败直接解档显示上次缓存数据

// if (connectionError) {

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/str11.txt"];

id obj = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

NSMutableDictionary *dic = obj[@"result"];

arr = dic[@"data"];

NSLog(@"======%@",arr);

for (int i =0; i<5; i++) {

// NSLog(@"-------%@",arr[i]);

[array addObject:arr[i]];

[self.tableView reloadData];

NSLog(@"-----%lu",(unsigned long)array.count);

}

}];

}

/**

*  集成刷新控件

*/

- (void)setupRefresh

{

[self.tableViewaddHeaderWithTarget:selfaction:@selector(headerRereshing) dateKey:@"table"];

// 2.上拉加载更多(进入刷新状态就会调用self的footerRereshing)

[self.tableView addFooterWithTarget:self action:@selector(footerRereshing)];

// 设置文字

self.tableView.headerPullToRefreshText = @"下拉可以刷新了";

self.tableView.headerReleaseToRefreshText = @"松开马上刷新了";

self.tableView.headerRefreshingText = @"正在刷新中,请稍等";

self.tableView.footerPullToRefreshText = @"上拉可以加载更多数据了";

self.tableView.footerReleaseToRefreshText = @"松开马上加载更多数据了";

self.tableView.footerRefreshingText = @"正在加载中,请稍等";

}

- (void)headerRereshing

{

// 2.模拟2秒后刷新表格UI

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

// 刷新表格

[self.tableView reloadData];

// (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态

[self.tableViewheaderEndRefreshing];

});

}

- (void)footerRereshing

{

// 1.添加假数据

if (i<5) {

for (int i = 0; i<5; i++) {

[array addObject:arr[i]];

}

[self.tableViewreloadData];

}

i++;

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

// 刷新表格

[self.tableView reloadData];

// (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态

[self.tableViewfooterEndRefreshing];

});

// [self.tableView footerEndRefreshing];

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

NSLog(@"111111");

for (NSDictionary * obj in array) {

NSLog(@"=======%@",obj[@"title"]);

}

NSLog(@"++++++%lu",(unsigned long)array.count);

return array.count;

}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

return 130;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

NSLog(@"2222222");

static NSString *inde = @"cell";

myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:inde];

if (cell == nil) {

cell = [[myTableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:inde];

}

//   myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MJTableViewCellIdentifier forIndexPath:indexPath];

NSDictionary *dic = arr[indexPath.row];

NSArray * arr11 = dic[@"albums"];

[cell.img sd_setImageWithURL:arr11[0] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

}];

cell.lab.text = dic[@"title"];

cell.lab1.text = dic[@"imtro"];

return cell;

}

#import <UIKit/UIKit.h>

@interface myTableViewCell : UITableViewCell

@property(nonatomic,copy)UIImageView *img;

@property(nonatomic,copy)UILabel *lab;

@property(nonatomic,copy)UILabel *lab1;

@property(nonatomic,copy)UILabel *lab2;  //此属性用于详细步骤显示页

@end

时间: 2024-12-17 19:32:36

上拉刷新,下拉加载的相关文章

安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多

<!-- Description:上拉刷新,下拉加载更多是现在最流行的手势操作,但是对于初学者来说,在实现上是有一定难度的, 网上很多教程讲的都过于复杂,对于初学者无法起到引导作用,特此写本文,帮助安卓新手入门理解此, 还有最为重要的一点:本文只帮助你理解,并不是想你成为代码搬运工!别被那么多代码吓到了, 其中很多都是注释,仔细看注释对你理解有很大的帮助 Author:Booker L Date:2014-05-16 --> 一,事先准备: 实现该功能,最基本的需要两个东西,一个是OnTouc

Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 -- CardView.RecyclerView也是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存. RecyclerView的优点就是,他可以通过设置LayoutMan

jQuery手机端上拉刷新下拉加载更多页面

<!doctype html> <html> <head> <title>jquery 手机端上拉刷新下拉加载更多页面</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta name="viewpost" content="width=device-wi

PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView

PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView

新浪微博项目---首页技术点三.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现)

一.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现) 1.下拉刷新 #pragma mark ---集成下*拉刷新控件 -(void)setupDownRefresh { //1.添加刷新控件 UIRefreshControl *control = [[UIRefreshControl alloc] init]; //只有用户通过手动下拉刷新,才会触发UIControlEventValueChanged事件 [control addTarget:self action:@selector(

Android MVP设计框架模板 之 漂亮ListView上拉刷新下拉加载更多

mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理.MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller. 项目中大部分是面对接口编程,通过P层可以预先将所有需要的接口功能

通用版的上拉刷新下拉加载控件

通用版的上拉刷新下拉加载控件 适用于各种控件实现上拉刷新,下拉加载的功能. 下载地址:http://www.devstore.cn/code/info/964.html 运行截图:    

小程序 上拉刷新/下拉加载

小程序项目中上拉刷新下拉加载是比较常见的需求,官方文档也提供了相当友好的API,但是因为API隐藏的比较深,文档描述也比较模糊所以也折腾了一番(官方文档),在此记录一下使用方式 onPullDownRefresh()  //用户下拉刷新事件,onReachBottom() //用户上拉触底事件 onPullDownRefresh和onReachBottom是小程序的页面事件,官方文档描述"需要在app.json的window选项中或页面的json文件中开启enablePullDownRefres

iOS-上拉刷新下拉加载 新版MJRefresh和EGOTableViewPullRefresh

上拉刷新下拉加载比较流行的两个第三方 MJRefresh和 EGOTableViewPullRefresh 一.最新版的MJRefresh 首先介绍M了个J的 最新版的MJRefresh 因为他的github里有详细介绍,话不多说上代码 [objc] view plain copy // //  ViewController.m //  新版MJRefresh Demo // //  Created by Jack_Jia on 16/1/19. //  Copyright ? 2016年 Ja

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果(五) 五一劳动节马上来临,小伙伴有妹有很激动哟,首先祝天下所有的程序猿节日快乐!这个五一对于我来说有点不一样,我的人生从这个五一就转弯了,爱情长跑8年的我结婚了,一会支付宝账号我会公布出去,请自觉打款!谢谢合作. 灯光闪起来: 舞蹈跳起来: 歌曲唱起来: -------------------------------------------------------------------------------------