swift實現(xiàn)下拉刷新,上拉加載

在工程的橋接文件中添加如下代碼:(如何創(chuàng)建橋接文件:右鍵工程-->創(chuàng)建普通OC文件绣的,名稱隨意起-->創(chuàng)建成功速客,會提示是否創(chuàng)建橋接文件-->點擊是戚篙,會創(chuàng)建一個以"工程名-Bridging-Header.h"的.h文件,這就是你的橋接文件溺职。)

//下來刷新及上拉加載MJRefresh#import "MJRefresh.h"

3岔擂、然后就上代碼吧,下面實現(xiàn)了最基本的帶文字刷新及加載浪耘,同時實現(xiàn)了帶圖片的下拉刷新及上拉加載乱灵。(圖片文件在下載MJRefresh插件demo工程中,請自取七冲。)

////  NavigationViewController.swift
//  Yundou////  Created by Slow on 16/1/3.
//  Copyright ? 2016年 Slow. All rights reserved.
//import UIKitclass ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {  
 var tableView:UITableView!   
 var idleImages:NSMutableArray = []  
 var refreshingImages:NSMutableArray = []    
 var objectArr = [String]()   
 var i = 0      
  override func viewDidLoad() {        
     super.viewDidLoad()      
        // Do any additional setup after loading the view.              
        self.tableView = UITableView(frame: self.view.frame)        
        self.view.addSubview(self.tableView)    
        self.tableView.delegate = self        
        self.tableView.dataSource = self                //注冊tableViewCell        
        self.tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")       
        //去除無數(shù)據(jù)的空tableViewCell       
        self.tableView.tableFooterView = UIView()             
        for i ; i<10 ; i++ {          
            self.objectArr.append("/(i)")      
        }              
         // 設(shè)置普通狀態(tài)的動畫圖片    
       for (var i = 1; i<=60; i++) {          
           var image:UIImage = UIImage(named: "dropdown_anim__000/(i)")! as UIImage            idleImages.addObject(image) 
       }              
        // 設(shè)置普通狀態(tài)的動畫圖片       
      for (var i = 1; i<=3; i++) {        
           var image: UIImage = UIImage(named: "dropdown_loading_0/(i)")! as UIImage            idleImages.addObject(image)      
       }             
      //定義動畫刷新Header      
       let header:MJRefreshGifHeader = MJRefreshGifHeader(refreshingTarget: self, refreshingAction: "headerRefresh")     
      //設(shè)置普通狀態(tài)動畫圖片     
        header.setImages(idleImages as [AnyObject], forState: MJRefreshState.Idle)     
     //設(shè)置下拉操作時動畫圖片    
       header.setImages(refreshingImages as [AnyObject], forState: MJRefreshState.Pulling)      
    //設(shè)置正在刷新時動畫圖片      
      header.setImages(idleImages as [AnyObject], forState: MJRefreshState.Refreshing)       
         //設(shè)置mj_header      
       self.tableView.mj_header = header     
      //普通帶文字下拉刷新的定義//   
       self.tableView.mj_header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: "headerRefresh")     
      //普通帶文字上拉加載的定義//       
       self.tableView.mj_footer = MJRefreshAutoNormalFooter(refreshingTarget: self, refreshingAction: "footerRefresh")     
   } 
   override func didReceiveMemoryWarning() {       
          super.didReceiveMemoryWarning()     
             // Dispose of any resources that can be recreated.  
            }      
          //定義表格有多少行   
         func numberOfSectionsInTableView(tableView: UITableView) -> Int{    
             return 1   
          }      
         func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{      
             return objectArr.count   
         }       
        //定義tableViewCell樣式 
        func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {    
             let cell = tableView.dequeueReusableCellWithIdentifier("cell",forIndexPath:indexPath) as UITableViewCell               
 cell.textLabel?.text = "第/(self.objectArr[indexPath.row])行"    
            return cell        
          }     
       //下拉刷新操作  
      func headerRefresh(){      
         //模擬數(shù)據(jù)請求痛倚,設(shè)置10s是為了便于觀察動畫     
          self.delay(10) { () -> () in      
          self.objectArr.removeAll()         
          self.i = 10        
          for self.i ; self.i<20 ; self.i++ {       
              self.objectArr.append("/(self.i)")   
          }      
        //結(jié)束刷新      
          self.tableView.mj_header.endRefreshing()      
          self.tableView.reloadData()   
       }   
 }    
    //上拉加載操作  
  func footerRefresh(){    
         //模擬數(shù)據(jù)請求,設(shè)置10s是為了便于觀察動畫       
         self.delay(10) { () -> () in       
         let j = self.i + 10        
         for self.i ; self.i<j ; self.i++ {       
             self.objectArr.append("/(self.i)")        
         }        
        //結(jié)束刷新       
         self.tableView.mj_footer.endRefreshing()      
         self.tableView.reloadData()      
      }  
  }   
 //延遲方法  
  func delay(time:Double,closure:() -> ()){      
          dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC))), 
          dispatch_get_main_queue(), closure)   
 }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澜躺,一起剝皮案震驚了整個濱河市蝉稳,隨后出現(xiàn)的幾起案子抒蚜,更是在濱河造成了極大的恐慌,老刑警劉巖耘戚,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗡髓,死亡現(xiàn)場離奇詭異,居然都是意外死亡收津,警方通過查閱死者的電腦和手機饿这,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朋截,“玉大人蛹稍,你說我怎么就攤上這事〔糠” “怎么了唆姐?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長廓八。 經(jīng)常有香客問我奉芦,道長,這世上最難降的妖魔是什么剧蹂? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任声功,我火速辦了婚禮,結(jié)果婚禮上宠叼,老公的妹妹穿的比我還像新娘先巴。我一直安慰自己,他們只是感情好冒冬,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布伸蚯。 她就那樣靜靜地躺著,像睡著了一般简烤。 火紅的嫁衣襯著肌膚如雪剂邮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天横侦,我揣著相機與錄音挥萌,去河邊找鬼。 笑死枉侧,一個胖子當(dāng)著我的面吹牛引瀑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播榨馁,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼憨栽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起徒像,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤黍特,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后锯蛀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灭衷,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年旁涤,在試婚紗的時候發(fā)現(xiàn)自己被綠了翔曲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡劈愚,死狀恐怖瞳遍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情菌羽,我是刑警寧澤掠械,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站注祖,受9級特大地震影響猾蒂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜是晨,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一肚菠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罩缴,春花似錦蚊逢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至炉抒,卻和暖如春奢讨,著一層夾襖步出監(jiān)牢的瞬間稚叹,已是汗流浹背焰薄。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扒袖,地道東北人塞茅。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像季率,于是被迫代替她去往敵國和親野瘦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容