亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Swift > 正文

Swift開發之使用UIRefreshControl實現下拉刷新數據及uirefreshcontrol使用

2020-03-09 17:53:06
字體:
來源:轉載
供稿:網友
本文給大家介紹使用UIRefreshControl實現下拉刷新數據,及UIRefreshControl的使用步驟,對本文感興趣的朋友一起學習吧
 

想要下拉刷新表格數據,上拉加載新數據,網上有許多第三方的實現類。

而如果僅僅需要實現下拉刷新數據的話,那么使用 UIRefreshControl 就足夠了,簡單有好用。

1.UIRefreshControl 的使用步驟:

(1)創建 UIRefreshControl,并設置文字,顏色等信息。
(2)將 UIRefreshControl 添加到tableview視圖中。
(3)給 UIRefreshControl 添加方法,當值改變的時候調用,用于數據請求刷新。
(4)請求數據確認完成之后,調用endRefreshing方法,關閉刷新。

2.效果圖如下

 Swift開發之使用UIRefreshControl實現下拉刷新數據及uirefreshcontrol使用

3.代碼如下

import UIKitclass ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { //新聞列表 @IBOutlet weak var newsTableView: UITableView! //新聞數組集合 var dataArray:[HanggeArticle] = [HanggeArticle]() //拉刷新控制器 var refreshControl = UIRefreshControl() override func viewDidLoad() {  super.viewDidLoad()  self.automaticallyAdjustsScrollViewInsets = false  //添加刷新  refreshControl.addTarget(self, action: "refreshData",   forControlEvents: UIControlEvents.ValueChanged)  refreshControl.attributedTitle = NSAttributedString(string: "下拉刷新數據")  newsTableView.addSubview(refreshControl)  refreshData() } // 刷新數據 func refreshData() {  //移除老數據  self.dataArray.removeAll()  //隨機添加條新數據(時間是當前時間)  for _ in ..< {   let atricle = HanggeArticle(title: "新聞標題/(Int(arcrandom()%))",    createDate: NSDate())   self.dataArray.append(atricle)  }  self.newsTableView.reloadData()  self.refreshControl.endRefreshing() } // 返回記錄數 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {  return dataArray.count; } // 返回單元格內容 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)  -> UITableViewCell {  let cell = UITableViewCell(style: UITableViewCellStyle.Subtitle,   reuseIdentifier: "myCell")  //設置單元格標題  let atricle: HanggeArticle = dataArray[indexPath.row] as HanggeArticle  cell.textLabel?.text = atricle.title  //設置單元格副標題  let dateFormatter = NSDateFormatter()  dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"  let str = dateFormatter.stringFromDate(atricle.createDate)  cell.detailTextLabel?.text = str  return cell; } override func didReceiveMemoryWarning() {  super.didReceiveMemoryWarning() }}//新聞結構體struct HanggeArticle { var title:String var createDate:NSDate}

PS:UIRefreshControl的使用

1、使用范圍

如果你裝了xcode_4.5_developer_preview,那么在UITableViewController.h文件中你會看到,UITableViewController里面有如下聲明,說明UITableViewController已經內置了UIRefreshControl控件

 

復制代碼代碼如下:

@property (nonatomic,retain) UIRefreshControl *refreshControl NS_AVAILABLE_IOS(6_0);  

 

【注】:UIRefreshControl目前只能用于UITableViewController,如果用在其他ViewController中,運行時會得到如下錯誤提示:(即UIRefreshControl只能被UITableViewController管理)

2012-06-15 14:34:34.908 DevDivUIRefreshControl[722:10103] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UIRefreshControl may only be managed by a UITableViewController' *** First throw call stack: (0x186fd72 0x1066e51 0x186fb4b 0x55a559 0x57238 0x5d482 0x55ad2 0x2ebb 0xeb2a3 0xeb30e 0x10b7e9 0x10b624 0x109aef 0x10999c 0x107adc 0x1082c6 0xecf24 0xed1e0 0xee084 0x5645c 0x5cf31 0x55ad2 0x4131d 0x414f6 0x4168c 0x49871 0x10a90 0x1196a 0x222be 0x22f9f 0x153fd 0x17ccf39 0x17ccc10 0x17e5da5 0x17e5b12 0x1816b46 0x1815ed4 0x1815dab 0x1128f 0x12e71 0x29fd 0x2925) libc++abi.dylib: terminate called throwing an exception (lldb) 

2、如何使用

    a)初始化

如何在UITableViewController 中使用UIRefreshControl呢,在上面給出的代碼附件中,你可以很詳細的知道,這里介紹一下關鍵的部分:

self.refreshControl = [[UIRefreshControl alloc]init];  // self.refreshControl.tintColor = [UIColor blueColor];  self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新"];  [self.refreshControl addTarget:self action:@selector(RefreshViewControlEventValueChanged) forControlEvents:UIControlEventValueChanged]; 

如上面看到的代碼,雖然UITableViewController已經聲明了UIRefreshControl,但是貌似還沒有初始化,所以需要我們自己初始化。很神奇,初始化的時候并不需要給它指定frame,UITableViewController會為我們進行管理。遺憾的時目前只看到下拉刷新功能,上拉刷新還沒有,估計在最終版里面蘋果會考慮加入上拉刷新功能。
我們還可以給UIRefreshControl設置tintColor和attributedTitle。

 b)下拉刷新事件監聽

當用戶進行下拉刷新操作時,UIRefreshControl 會觸發一個UIControlEventValueChanged事件,通過監聽這個事件,我們就可以進行類似數據請求的操作了。如下代碼:

 

復制代碼代碼如下:

[self.refreshControl addTarget:self action:@selector(RefreshViewControlEventValueChanged)

 

c)進行數據請求

在示例中,為了演示數據請求,我簡單的做了一個延時處理,2秒鐘后,調用handleData

 

復制代碼代碼如下:

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

 

在handleData里面,就表示已經請求到了數據,在此進行UI更新即可。也需要注意的是,我們調用UIRefreshControl 的endRefreshing方法,表示刷新結束,讓UIRefreshControl更新顯示。

- (void) handleData {  NSLog(@"refreshed");  [self.refreshControl endRefreshing];  self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新"];   self.count++;  [self.tableView reloadData]; } 

3、官方頭文件

下面是sdk中UIRefreshControl的聲明,想必看了下面的代碼,你已經知道如何使用了。

// // UIRefreshControl.h // UIKit // // Copyright 2012 Apple Inc. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIControl.h> #import <UIKit/UIKitDefines.h> NS_CLASS_AVAILABLE_IOS(6_0) @interface UIRefreshControl : UIControl /* The designated initializer  * This initializes a UIRefreshControl with a default height and width.  * Once assigned to a UITableViewController, the frame of the control is managed automatically.  * When a user has pulled-to-refresh, the UIRefreshControl fires its UIControlEventValueChanged event.  */ - (id)init; @property (nonatomic, readonly, getter=isRefreshing) BOOL refreshing; @property (nonatomic, retain) UIColor *tintColor UI_APPEARANCE_SELECTOR; @property (n


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩在线观看视频小说| 国产精品视频yy9099| 91精品国产综合久久香蕉的用户体验| 日本不卡高字幕在线2019| 国产精品女人久久久久久| 91精品国产综合久久男男| 欧美日韩国产精品| 亚洲aa在线观看| 精品av在线播放| 亚洲va久久久噜噜噜久久天堂| 欧美日韩视频在线| 久久久女女女女999久久| 宅男66日本亚洲欧美视频| 成人免费网站在线观看| 亚洲精品一区二区三区不| 国产成人激情视频| 在线国产精品播放| 欧美在线视频导航| 亚洲精品综合久久中文字幕| 伊人久久五月天| 久久久久久九九九| 国产mv免费观看入口亚洲| 亚洲欧美国产va在线影院| 国产亚洲激情视频在线| 亚洲自拍小视频| 亚洲第一国产精品| 日韩av有码在线| 亚洲第一天堂无码专区| 欧美大片在线影院| 欧美精品videosex牲欧美| 国产精品视频一区二区三区四| 91在线高清免费观看| 亚洲免费一级电影| 亚洲欧美国产高清va在线播| 亚洲人成电影网| 国模吧一区二区三区| 日韩精品亚洲视频| 日韩欧美精品免费在线| 欧美日韩不卡合集视频| 日韩亚洲国产中文字幕| 亚洲香蕉成视频在线观看| 国产精品视频网址| 精品免费在线观看| 国产又爽又黄的激情精品视频| 日韩av中文字幕在线播放| 亚洲美女www午夜| 国产成人精品在线视频| 中文字幕免费国产精品| 欧美日韩国产一区中文午夜| 精品亚洲男同gayvideo网站| 亚洲自拍偷拍色图| 日韩精品999| 日韩高清欧美高清| 97在线视频免费| 成人中心免费视频| 九九热最新视频//这里只有精品| 日韩精品在线影院| 另类天堂视频在线观看| 色偷偷888欧美精品久久久| 亚洲大尺度美女在线| 国产精品高潮视频| 成人精品一区二区三区电影黑人| 中文字幕视频在线免费欧美日韩综合在线看| 久久999免费视频| 91在线高清免费观看| 欧美尺度大的性做爰视频| 国产91久久婷婷一区二区| 色av吧综合网| 国产一区二区三区在线观看网站| 久久久久久久国产| 日韩免费在线电影| 精品露脸国产偷人在视频| 国产乱人伦真实精品视频| 欧美影院在线播放| 国产精品美女999| 精品美女久久久久久免费| 国产这里只有精品| 国产精品一区二区性色av| 欧美日韩激情视频8区| 伦伦影院午夜日韩欧美限制| 91视频88av| 亚洲bt欧美bt日本bt| 亚洲欧美日韩一区二区三区在线| 伊是香蕉大人久久| 日韩欧美精品网站| 亚洲情综合五月天| 91久久精品日日躁夜夜躁国产| 亚洲激情中文字幕| 精品中文字幕久久久久久| 国产一区视频在线| 亚洲国产婷婷香蕉久久久久久| 伊人伊成久久人综合网站| 色香阁99久久精品久久久| 91中文精品字幕在线视频| 高清一区二区三区日本久| 国产精品成av人在线视午夜片| 久久免费精品日本久久中文字幕| 国产精品黄视频| 亚洲精品女av网站| 久久激情五月丁香伊人| 亚洲视频欧美视频| 亚洲最大激情中文字幕| 麻豆国产精品va在线观看不卡| 精品国产福利在线| 亚洲free性xxxx护士白浆| 久久精品福利视频| 亚洲欧美日韩中文在线| 中文字幕亚洲一区| 亚洲国产精品va在线观看黑人| 国产视频在线一区二区| 久久久久久久色| 亚洲国产精品久久91精品| 亚洲午夜av电影| 激情成人在线视频| 成人免费xxxxx在线观看| 国产视频一区在线| 亚洲国产美女精品久久久久∴| 亚洲人成网站999久久久综合| 欧美最顶级的aⅴ艳星| 亚洲欧美日本另类| 欧美另类第一页| 精品日本高清在线播放| 成人黄色大片在线免费观看| 国产在线观看精品一区二区三区| 亚洲男人天堂网| 久久国产一区二区三区| 久久久久久久影视| 最近2019年手机中文字幕| 欧美亚洲国产日韩2020| 国产午夜精品全部视频在线播放| 色综合天天狠天天透天天伊人| 秋霞av国产精品一区| 日韩视频免费观看| 久久久女人电视剧免费播放下载| 国产精品第一页在线| 亚洲国产成人精品电影| 久久男人av资源网站| 国产精品久久久av| 日韩国产欧美区| 久久人人爽人人爽人人片av高清| 欧美在线激情网| 国产91精品久久久久久久| 欧美裸身视频免费观看| 国产精品久久久久久久久久久新郎| 国产99久久精品一区二区永久免费| 国产精品视频导航| 久久精品久久精品亚洲人| 久久免费视频网站| 欧美理论片在线观看| 精品视频久久久久久| 亚洲福利小视频| 国产视频综合在线| 国内精品久久久久久中文字幕| 亚洲加勒比久久88色综合| 俺也去精品视频在线观看| 精品无人区乱码1区2区3区在线| 亚洲国产欧美一区二区三区久久| 国产视频精品在线| 亚洲人在线观看| 亚洲毛片在线免费观看| 精品高清美女精品国产区| 精品视频久久久久久| 久久久久久有精品国产| 疯狂做受xxxx欧美肥白少妇|