★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(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 }