不會調戲代碼的不是骨灰級碼工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裏面)
最後 想下載源代碼的同窗 能夠訪問文章開頭的地址 而後回覆下載