IOS6 新特性之UIRefreshControl
?不會調(diào)戲代碼的不是骨灰級碼工
?你同意嗎?
?蘋果估計想取代第三方的pull to refresh” ? ? ? ?--------------以上摘自DevDiv社區(qū)
源代碼參考了DevDiv社區(qū)的代碼 地址: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.html
如上述摘文最后一句所言,在蘋果IOS6的新特性中有一個叫做UIRefreshControl的控件,顧名思義,它的用途正是 pull to refresh。
在進(jìn)入到代碼層面上的解釋前,需要先說一點:在IOS6中?只有UITableViewController能夠使用UIRefreshControl控件,其他的viewController如果使用了,會報錯。
要使用UIRefreshControl需要有3個步驟 ? 一、初始化以及配置 ? 二、與UItableViewController以及相應(yīng)動作的關(guān)聯(lián)? 三、為UIRefreshControl控件添加動作
首先 先看初始化:(這里的self是UITableViewController 即以下代碼是寫在一個UITableViewController.m中的)
? ? ?self.refreshControl?= [[UIRefreshControl?alloc]?init];//把refreshControl寫成了UITableViewController的屬性
? ? ?self.refreshControl.tintColor?= [UIColor?blueColor];//將控件顏色設(shè)為藍(lán)色
? ? ?self.refreshControl.attributedTitle?= [[NSAttributedString?alloc]?initWithString:@"下拉刷新"]; ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ??
? ???//與UIRefreshControl控件對應(yīng)的文字文字當(dāng)然是可以更改的從而可以顯示??刷新中下拉刷新等提示語
以上 代碼便是UIRefreshControl的初始化以及兩個屬性的配置
? ? 涉及到 1個初始化方法init 和兩個屬性tintColor(控件顏色)?attributedTitle(匹配的文字)
? ? ? ? ? ? ? ? ? ? ? ? 這里attributedTitle要注意其類型是NSAttributedString?
? ? ? ? ? ? ? ? ? ? ? ? 這類字符串的特性是可以分為好幾段 然后編輯成不同的字體類型(包括不同顏色)
注意:在UITableViewController的viewdidload方法中 添加這些代碼
接下來是第二個步驟?與UItableViewController以及相應(yīng)動作的關(guān)聯(lián):
?在初始化完成之后 加上該語句:[self.refreshControl?addTarget:self?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? action:@selector(RefreshViewControlEventValueChanged) ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? forControlEvents:UIControlEventValueChanged];
?addTarget:self ?即完成了與UITableViewController的管理 (self即是UITableVIewController)
??action:@selector(RefreshViewControlEventValueChanged) ? ?即完成了與相應(yīng)動作的關(guān)聯(lián) (雖然動作還沒寫)
最后的步驟便是添加相應(yīng)動作:
??
?見代碼:
? ??-(void)RefreshViewControlEventValueChanged
{
????if?(self.refreshControl.refreshing) {
????????NSLog(@"refreshing");
????????self.refreshControl.attributedTitle?= [[NSAttributedStringalloc]initWithString:@"刷新中"];
??????? [self?performSelector:@selector(handleData) withObject:nil?afterDelay:0.3];
??? }
}
這里涉及到了UIRefreshControl控件的最后一個屬性 refreshing ?該屬性為真 意味著執(zhí)行了下拉操作 即你拉的夠用力- -有效果。
之后 便可以實現(xiàn)你需要的效果 這里時為UITableView增加一行
PS:在以上的代碼中 漏掉了2個實例方法
? ??beginRefreshing?和?endRefreshing 一個開始刷新 一個結(jié)束刷新(這個代碼中實際上用到了 在handleData里面)
最后 想下載源代碼的同學(xué) 可以訪問文章開頭的地址 然后回復(fù)下載
轉(zhuǎn)載于:https://www.cnblogs.com/zsw-1993/p/4879635.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的IOS6 新特性之UIRefreshControl的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 2159 FATE (DP 二维
- 下一篇: 详解:Drools规则引擎探究以及在IO