IOS6 新特性之UIRefreshControl

“不会模仿的公司不是好公司不会剽窃的公司不是优秀公司 

 不会调戏代码的不是骨灰级码工html

 你赞成吗?字体

 苹果估计想取代第三方的pull to refresh”        --------------以上摘自DevDiv社区spa


源代码参考了DevDiv社区的代码 地址:http://www.devdiv.com/iOS_iPhone-iOS6%E6%96%B0%E7%89%B9%E5%BE%81%EF%BC%9AUIRefreshControl_%E4%B8%8B%E6%8B%89%E5%88%B7%E6%96%B0_%E4%BD%BF%E7%94%A8%E7%A4%BA%E4%BE%8B-thread-127741-1-1.htmlorm


如上述摘文最后一句所言,在苹果IOS6的新特性中有一个叫作UIRefreshControl的控件,顾名思义,它的用途正是 pull to refresh。htm

在进入到代码层面上的解释前,须要先说一点:在IOS6中 只有UITableViewController可以使用UIRefreshControl控件,其余的viewController若是使用了,会报错。字符串


要使用UIRefreshControl须要有3个步骤   1、初始化以及配置   2、与UItableViewController以及相应动做的关联  3、为UIRefreshControl控件添加动做get


首先 先看初始化:(这里的self是UITableViewController 即如下代码是写在一个UITableViewController.m中的)it


     self.refreshControl = [[UIRefreshControl alloc] init];//refreshControl写成了UITableViewController的属性io

     self.refreshControl.tintColor = [UIColor blueColor];//将控件颜色设为蓝色社区

     self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"];                                  

     //UIRefreshControl控件对应的文字文字固然是能够更改的从而能够显示  刷新中下拉刷新等提示语


以上 代码即是UIRefreshControl的初始化以及两个属性的配置

    涉及到 1个初始化方法init 和两个属性tintColor(控件颜色) attributedTitle(匹配的文字)

                        这里attributedTitle要注意其类型是NSAttributedString 

                        这类字符串的特性是能够分为好几段 而后编辑成不一样的字体类型(包括不一样颜色)


注意:在UITableViewController的viewdidload方法中 添加这些代码

接下来是第二个步骤 与UItableViewController以及相应动做的关联


 在初始化完成以后 加上该语句:[self.refreshControl addTarget:self 

                                                action:@selector(RefreshViewControlEventValueChanged)                   

                                      forControlEvents:UIControlEventValueChanged];

 addTarget:self  即完成了与UITableViewController的管理 (self便是UITableVIewController)

  action:@selector(RefreshViewControlEventValueChanged)    即完成了与相应动做的关联 (虽然动做还没写)


最后的步骤即是添加相应动做

  

 见代码:

    -(void)RefreshViewControlEventValueChanged

{

    if (self.refreshControl.refreshing) {

        NSLog(@"refreshing");

        self.refreshControl.attributedTitle = [[NSAttributedStringalloc]initWithString:@"刷新中"];


        [self performSelector:@selector(handleData) withObject:nil afterDelay:0.3];

    }

}


这里涉及到了UIRefreshControl控件的最后一个属性 refreshing  该属性为真 意味着执行了下拉操做 即你拉的够用力- -有效果。

以后 即可以实现你须要的效果 这里时为UITableView增长一行


PS:在以上的代码中 漏掉了2个实例方法

    beginRefreshing 和 endRefreshing 一个开始刷新 一个结束刷新(这个代码中实际上用到了 在handleData里面)


最后 想下载源代码的同窗 能够访问文章开头的地址 而后回复下载

相关文章
相关标签/搜索