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