简单实现---下拉刷新 --使用UITableViewController中的refreshControl属性

丌官炎彬
2023-12-01

和上文一样,也是一个简单的根视图控制器直接加载.其中的数组模仿了真实的数据加载.直接把数组更改为数据库拿去数据即可,其中涉及到主要就是新开了一个线程,本文主要解释了以下实现的原理,如果涉及到从网络获取数据的问题,看懂本文之后请自行百度,估计就可以看懂了.

以下为.h文件

#import <UIKit/UIKit.h>

@interface RootViewController : UITableViewController
@property (retain,nonatomic) NSMutableArray *arr;
@end
以下为.m文件

#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        self.arr = [[NSMutableArray alloc] initWithCapacity:5];
        [self.arr addObject:@"123"];
        [self.arr addObject:@"123"];
        [self.arr addObject:@"123"];
        [self.arr addObject:@"123"];
        [self.arr addObject:@"123"];
        [self.arr addObject:@"123"];
    }
    return self;
}
- (void)viewWillAppear:(BOOL)animated
{
    
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.refreshControl = [[UIRefreshControl alloc] init];
    self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"谁离了谁累死了当拉拉队"];
    [self.refreshControl addTarget:self action:@selector(a) forControlEvents:UIControlEventValueChanged];

    
}
- (void)a
{
    NSLog(@"1234");
    [self performSelector:@selector(handleData) withObject:nil afterDelay:2];

}
- (void)handleData
{
    [self.refreshControl endRefreshing];
    NSLog(@"nidaye");
    [self.arr addObject:@"123"];
    [self.tableView reloadData];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [self.arr count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]autorelease];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"%d",[self.arr count]-indexPath.row];
    NSLog(@"这说明正在复用");
    return cell;

}

@end


转载于:https://www.cnblogs.com/xukunhenwuliao/p/3576205.html

 类似资料: