[Swift通天遁地]2、表格表單-(6)建立美觀的表格彈性下拉刷新效果

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-wyczpduh-kg.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 'DGElasticPullToRefresh'
7 end

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

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

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

如今開始編寫代碼,實現彈性下拉刷新效果的功能。post

  1 import UIKit
  2 //在當前的類文件中引入已經安裝的第三方類庫
  3 import DGElasticPullToRefresh
  4 
  5 //使當前的視圖控制器類,遵循表格的數據源協議UITableViewDataSource和代理協議UITableViewDelegate
  6 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
  7 
  8     //添加一個包含十二個月的數組屬性,做爲表格視圖的數據源
  9     var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
 10     //添加一個屬性,做爲須要添加下拉刷新功能的表格視圖
 11     var tableView : UITableView!
 12     
 13     override func viewDidLoad() {
 14         super.viewDidLoad()
 15         // Do any additional setup after loading the view, typically from a nib.
 16         
 17         //建立一個矩形區域,做爲表格視圖的顯示區域
 18         let rect = CGRect(x: 0, y: 60, width: 320, height: 510)
 19         //初始化一個指定顯示區域的表格對象
 20         tableView = UITableView(frame: rect)
 21         
 22         //設置表格對象的數據源爲當前的視圖控制器對象
 23         tableView.delegate = self
 24         //設置表格對象的代理爲當前的視圖控制器對象
 25         tableView.dataSource = self
 26         //設置表格的背景顏色
 27         tableView.backgroundColor = UIColor(red: 254.0/255, green: 249.0/255, blue: 252.0/255, alpha: 1.0)
 28         
 29         //初始化一個第三方的下拉刷新組件
 30         let loadingView = DGElasticPullToRefreshLoadingViewCircle()
 31         //設置前景顏色爲白色
 32         loadingView.tintColor = UIColor.white
 33         //給表格視圖添加下拉刷新的功能
 34         tableView.dg_addPullToRefreshWithActionHandler(
 35             { [weak self] () -> Void in
 36                 //當對錶格執行下拉刷新操做時,往數組中插入一個新元素。
 37                 //並將新元素放置在數組的首位。
 38                 self?.months.insert("Honey moon", at: 0)
 39                 //讓表格對象刷新數據源
 40                 self?.tableView.reloadData()
 41                 //終止刷新控件的刷新動做
 42                 self?.tableView.dg_stopLoading()
 43             }, loadingView: loadingView)
 44         
 45         //設置下拉刷新的填充顏色爲橙色
 46         tableView.dg_setPullToRefreshFillColor(.orange)
 47         //設置下拉刷新的背景顏色和表格的背景顏色保持一致
 48         tableView.dg_setPullToRefreshBackgroundColor(tableView.backgroundColor!)
 49         
 50         //設置根視圖的背景顏色
 51         self.view.backgroundColor = UIColor.orange
 52         //將表格添加到根視圖
 53         self.view.addSubview(tableView)
 54     }
 55     
 56      //添加一個代理方法,用來設置表格的行數
 57     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
 58     {
 59         //在此設置表格的行數爲數組的長度
 60         return months.count
 61     }
 62     
 63     //添加一個代理方法,用來初始化或複用表格中的單元格
 64     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
 65     {
 66         //建立一個字符串常量,做爲單元格的複用標識
 67         let identifier = "reusedCell"
 68         //根據複用標識,從表格中得到能夠複用的單元格
 69         var cell = tableView.dequeueReusableCell(withIdentifier: identifier)
 70         
 71         //若是沒有能夠複用的單元格
 72         if(cell == nil)
 73         {
 74             //則初始化一個默認樣式的單元格,並設置單元格的複用標識
 75             cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: identifier)
 76         }
 77         
 78         //得到當前單元格的行數序號
 79         let rowNum = (indexPath as NSIndexPath).row
 80         //經過單元格的行數序號,從數組中得到相應的字符串,以設置單元格的標題內容,
 81         cell?.textLabel?.text = months[rowNum]
 82         //設置單元格的背景顏色
 83         cell?.backgroundColor = UIColor(red: 254.0/255, green: 249.0/255, blue: 252.0/255, alpha: 1.0)
 84         
 85         //返回設置好的單元格
 86         return cell!
 87     }
 88     
 89     //添加一個方法,在當前的視圖控制器被銷燬時
 90     deinit
 91     {
 92         //消除表格的下拉刷新控件
 93         tableView.dg_removePullToRefresh()
 94     }
 95     
 96     override func didReceiveMemoryWarning() {
 97         super.didReceiveMemoryWarning()
 98         // Dispose of any resources that can be recreated.
 99     }
100 }
相關文章
相關標籤/搜索