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裏面)


最後 想下載源代碼的同窗 能夠訪問文章開頭的地址 而後回覆下載

相關文章
相關標籤/搜索