zoukankan      html  css  js  c++  java
  • [Swift通天遁地]二、表格表单-(5)实现表格下拉和上拉刷新效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10183045.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    目录:[Swift]通天遁地Swift

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

    首先确保在项目中已经安装了所需的第三方库。

    点击【Podfile】,查看安装配置文件。

    根据配置文件中的相关配置,安装第三方库。

    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】

    现在开始编写代码,给表格添加一个第三方刷新组件。

      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,  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 }
  • 相关阅读:
    元组类型内置方法
    python的两种编程模式
    Python和Python解释器
    异常处理
    文件的三种打开方式
    python解释器的安装
    编程语言的分类
    计算机基础之编程
    linux 安装postgresql
    CentOS7 部署 gitlab
  • 原文地址:https://www.cnblogs.com/strengthen/p/10183045.html
Copyright © 2011-2022 走看看