UIRefreshControl下拉刷新

 除了使用第三方资源库来实现下拉刷新,我们也可以使用苹果的SDK中的UIRefreshControl来实现

其实UIRefreshControl的效果还是蛮不错的,所以特地学习了下,在此与大家分享。

UIRefreshControl使用非常简单,但是必须是在UITableViewController子类使用,而不能在UIViewController子类中使用。例如CustomViewController继承自UIViewController,那么就不能使用UIRefreshControl。

UIRefreshControl使用很简单,如下代码,RootTableViewController继承自UITableViewController,

//RootTaleViewController.h file
@interface RootTableViewController:UITableViewController
{
}
@end
//RootTableViewController.m file
@interface RootTableViewController()
 
@end
@implementation RootTableViewController
//省略不相干代码
 
- ( void )viewDidLoad
{
     [super viewDidLoad];
     //初始化UIRefreshControl
     UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
  self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新"];  
     [refreshControl addTarget:self action:@selector(refresh:) 
forControlEvents:UIControlEventValueChanged];
     [self setRefreshControl:refreshControl];
}
/*
解释一下下面的代码:
当用户向下下拉刷新的时候,refresh触发,这时候请求url链接中的内容。这里使用AFNetworking来解析,代码块中的内容就是解析成功之后,设置数据源self.tweets中的内容,然后刷新UITableView界面,然后向UIRefreshControl对象发送endRefreshing消息,停止UIRefreshControl的动画效果。如果失败的话,也要停止UIRefreshControl的动画效果。
*/
- ( void )refresh:(id)sender
{
     NSURL *url = [NSURL URLWithString:@ "http://search.twitter.com/search.json?q=ios%20development&rpp=100&include_entities=true&result_type=mixed/" ];
     // Initialize URL Request
     NSURLRequest *urlRequest = [[NSURLRequest alloc] initWithURL:url];
     // JSON Request Operation
     AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:urlRequest
 success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
         NSArray *results = [(NSDictionary *)JSON objectForKey:@ "results" ];
         if  ([results count]) {
             self.tweets = results;
             // Reload Table View
             [self.tableView reloadData];
             // End Refreshing
             [(UIRefreshControl *)sender endRefreshing];
         }
     } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
         // End Refreshing
         [(UIRefreshControl *)sender endRefreshing];
     }];
     // Start Operation
     [operation start];
}
@end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值