zoukankan      html  css  js  c++  java
  • [Swift通天遁地]二、表格表单-(6)创建美观的表格弹性下拉刷新效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10187543.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 'DGElasticPullToRefresh'
    7 end

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

    然后点击打开【DemoApp.xcworkspace】项目文件。

    在项目导航区,打开视图控制器的代码文件【ViewController.swift】

    现在开始编写代码,实现弹性下拉刷新效果的功能。

      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,  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 }
  • 相关阅读:
    webstrom破解的问题
    redis高级应用(1)
    linux之软链接、硬链接
    爬虫之scrapy、scrapy-redis
    爬虫之xpath、selenuim
    爬虫之Beautifulsoup模块
    爬虫之Reuqests模块使用
    测试项目配置
    Cleary基础
    Redis基础
  • 原文地址:https://www.cnblogs.com/strengthen/p/10187543.html
Copyright © 2011-2022 走看看