[Swift通天遁地]2、表格表單-(5)實現表格下拉和上拉刷新效果

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-vphkugvy-ke.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftios

本文將演示如何給表格添加下拉和上拉刷新的功能。git

首先確保在項目中已經安裝了所需的第三方庫。github

點擊【Podfile】,查看安裝配置文件。swift

根據配置文件中的相關配置,安裝第三方庫。數組

1 platform :ios, '12.0'
2 use_frameworks!
3 
4 target 'DemoApp' do
5     source 'https://github.com/CocoaPods/Specs.git'
6     pod 'PullToRefreshSwift'
7 end

而後點擊打開【DemoApp.xcworkspace】項目文件。微信

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】app

如今開始編寫代碼,給表格添加一個第三方刷新組件。ide

  1 import UIKit
  2 //在當前的類文件中,引入已經安裝的第三方類庫。
  3 import PullToRefreshSwift
  4 
  5 //使當前的視圖控制器類,遵循:
  6 //1.表格的數據源協議UITableViewDataSource
  7 //2.代理協議UITableViewDelegate
  8 //3.滾動視圖代理協議UIScrollViewDelegate
  9 class ViewController: UIViewController,UITableViewDataSource, UITableViewDelegate, UIScrollViewDelegate {
 10     
 11     //添加一個屬性,做爲須要添加下拉刷新功能的表格視圖
 12     var tableView: UITableView!
 13     //添加一個數組屬性,做爲表格視圖的數據源
 14     var languages = ["Java", "Objective-C", "Perl", "C", "C++", "Ruby"]
 15     
 16     override func viewDidLoad() {
 17         super.viewDidLoad()
 18         // Do any additional setup after loading the view, typically from a nib.
 19         
 20         //初始化一個指定顯示區域的表格對象
 21         self.tableView = UITableView(frame: CGRect(x: 0, y: 20, width: 320, height: 548))
 22         //設置單元格之間分隔線的顏色爲淺灰色
 23         self.tableView.separatorColor = UIColor(red: 224/255,
 24                                                 green: 224/255, 
 25                                                 blue: 224/255, 
 26                                                 alpha: 1.0)
 27 
 28         //設置表格對象的數據源爲當前的視圖控制器對象
 29         self.tableView.dataSource = self
 30         //設置表格對象的代理爲當前的視圖控制器對象
 31         self.tableView.delegate = self
 32         //將表格對象添加到根視圖中
 33         self.view.addSubview(self.tableView)
 34         
 35         //給表格對象添加監聽下拉刷新的功能
 36         self.tableView.addPullRefresh { [weak self] in
 37             
 38             //當用戶對錶格進行下拉刷新時,往數據源數組中添加一個新的元素,
 39             //並將新元素添加到數組的首位
 40             self?.languages.insert("Swift", at: 0)
 41             //對錶格進行數據內容的刷新
 42             self?.tableView.reloadData()
 43             //結束表格的下拉刷新動做
 44             self?.tableView.stopPullRefreshEver()
 45         }
 46 
 47         //建立一個下拉刷新選項
 48         var options = PullToRefreshOption()
 49         //設置下拉樣式的背景顏色爲淺灰色
 50         options.backgroundColor = UIColor.lightGray
 51         //設置下拉刷新指示器的顏色爲橙色
 52         options.indicatorColor = .orange
 53         
 54         //給表格添加向上拖拉刷新的功能
 55         self.tableView.addPushRefresh(options: options) { [weak self] in
 56             
 57             //當對錶格數據進行刷新時,在表格數據源數組中的尾部,添加一個新的元素。
 58             self?.languages.append("Swift")
 59             //對錶格進行數據內容的刷新
 60             self?.tableView.reloadData()
 61             //結束表格的上拉刷新動做
 62             self?.tableView.stopPushRefreshEver()
 63         }
 64     }
 65 
 66     //添加一個代理方法,用來設置表格的行數
 67     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
 68     {
 69         //在此設置表格的長度等於數組的長度
 70         return languages.count
 71     }
 72     
 73     //添加一個代理方法,用來初始化或複用表格中的單元格
 74     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
 75     {
 76         //建立一個字符串常量,做爲單元格的複用標識
 77         let identifier = "reusedCell"
 78         //根據複用標識,從表格中得到能夠複用的單元格
 79         var cell = tableView.dequeueReusableCell(withIdentifier: identifier)
 80         
 81         //若是沒有能夠複用的單元格
 82         if(cell == nil)
 83         {
 84             //則初始化一個默認樣式的單元格,並設置單元格的複用標識
 85             cell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: identifier)
 86         }
 87         
 88         //設置單元格的標題文字的字體大小爲18
 89         cell?.textLabel?.font = UIFont.italicSystemFont(ofSize: 18)
 90         //設置標題文字的字體顏色
 91         cell?.textLabel?.textColor = UIColor(red: 44/255, green: 62/255, blue: 88/255, alpha: 1.0)
 92         //經過當前單元格的序號,從數組中得到相應的字符串,做爲標題文字的內容
 93         cell?.textLabel?.text = languages[(indexPath as NSIndexPath).row]
 94         
 95         //最後返回設置好的單元格
 96         return cell!
 97     }
 98     
 99     override func didReceiveMemoryWarning() {
100         super.didReceiveMemoryWarning()
101         // Dispose of any resources that can be recreated.
102     }
103 }
相關文章
相關標籤/搜索