【LOL盒子】->iOS自带下拉刷新控件【UIRefreshControl】

下拉刷新  -> 在TableView中添加UIRefreshControl  -> 下拉刷新   -> 

 刷新中 (做网络请求,数据重组)   ->  请求结束,数据重组结束    ->  停止刷新   ->刷新TableView


先声明一个BOOL类型,模拟数据重组,每次刷新结束英雄配音和其他配音来回切换(数据重组就是重新获取数据)

<span style="font-size:24px;">@interface HeroDetailViewController ()
{
	BOOL CHANGE;

}
@property (nonatomic, strong) UIRefreshControl * refreshControl;</span>
UIRefreshControl方法:
<span style="font-size:24px;">#pragma mark添加下拉刷新控件
- (void)addRefreshViewControl
{
    self.refreshControl = [[UIRefreshControl alloc] init];
    self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"];
    self.refreshControl.tintColor = [UIColor lightGrayColor];
    [self.refreshControl addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];
    [self.voiceTableView addSubview:self.refreshControl];
}
#pragma mark刷新后调用方法
-(void) refreshView:(UIRefreshControl *)refresh
{
    refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"更新数据中..."];
    //网络请求,数据重组,当我们的网络请求和数据重组结束后,进入结束方法
    [self performSelector:@selector(changeData) withObject:nil afterDelay:2.0];
}
#pragma mark数据重组
- (void)changeData
{
    if (CHANGE) {
        CHANGE = NO;
        self.commonVoiceList = self.otherVoiceList;
    }else{
        CHANGE = YES;
        self.commonVoiceList = self.heroVoiceList;
    }
    [self.refreshControl endRefreshing];
    [self.voiceTableView reloadData];
    self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"];
    
}</span>
真实数据重组就是重新网络获取所需数据,传给self.commenList。再[self.voiceTableView reloadData];

效果如图:



   不过UIRefreshControl 只能加在TableView上,设置起来不太方便,还是使用第三方框架比较方便。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值