欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

刷新加载(OC_UI)

程序员文章站 2024-01-14 21:16:34
...

ViewController.m

#import "ViewController.h"
#import "MJRefresh.h"
#import "EAHTTPClient.h"
#import "Song.h"

@interface ViewController ()
<
UITableViewDataSource,
UITableViewDelegate
>
@property (nonatomic,retain) NSMutableArray *songArray;
@property (nonatomic,retain) UITableView *tableView;
@property (nonatomic,assign) BOOL refresh;
@property (nonatomic,assign) NSInteger page;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.songArray = [NSMutableArray array];
    UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:tableView];
    self.tableView = tableView;
    tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        
        NSLog(@"luck");
        self.refresh = YES;
        self.page = 1;
        [self loadDataWithPage:self.page];
        //结束刷新
        [tableView.mj_header endRefreshing];
    }];
    //自动刷新
    [tableView.mj_header beginRefreshing];
    tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
         self.refresh = NO;
        NSLog(@"one");
        self.page++;
        [self loadDataWithPage:self.page];
        [tableView.mj_footer endRefreshing];
    }];
    [tableView.mj_footer beginRefreshing];
    
    
}


- (void)loadDataWithPage:(NSInteger)pageName{
    NSString *URLSreing = @"http://172.18.26.201/get.php";
    NSDictionary * parameters = @{@"page":[NSString stringWithFormat:@"%ld",pageName]};
    [EAHTTPClient GET:URLSreing parameters:parameters success:^(id reponseObject) {
        if (self.refresh) {
            [self.songArray removeAllObjects];
            [self.tableView.mj_header endRefreshing];
        }else{
            [self.tableView.mj_footer endRefreshing];
        }
        
        
        for (NSDictionary *songDic in reponseObject ) {
            Song *song = [[Song alloc] init];
            [song setValuesForKeysWithDictionary:songDic];
            [self.songArray addObject:song];
        }
        [self.tableView reloadData];
        
        } failure:^(NSError *error) {
            
        
    }];


}


-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return self.songArray.count;

}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    Song *song = self.songArray[indexPath.row];
    static NSString *cellId = @"cell";
    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:cellId];
    if (nil == cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellId];
    }
    cell.textLabel.text = song.name;
    cell.detailTextLabel.text = song.singerName;
    return cell;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

Song.h

@property (nonatomic,copy)NSString *name;
@property (nonatomic,copy)NSString *number;
@property (nonatomic,copy)NSString *pic;
@property (nonatomic,copy)NSString *singerName;
@property (nonatomic,copy)NSString *url;

Song.m

- (void)setValue:(id)value forUndefinedKey:(NSString *)key{


}

在这个工程里主要用了第三方框架MJRefresh和EAHTTPClient来实现刷新加载的效果,第一个在github上就可以找到,第二个想要的童鞋可以私信我哦。
这个工程主要就是实现了刷新加载的效果,没有什么深层的知识 大家自行体会吧!!!!