欢迎来到代码驿站!

当前位置:首页 >

Swift TableView实现冻结窗格功能

时间:2021-04-25 10:10:01|栏目:|点击:

今天做了一个简例,用tableView实现excel冻结窗格功能 Demo:https://git.oschina.net/sunflowrs/FreezePanes.git

初始化Tableview 实现代理

class BasicTableView:UITableView,UITableViewDelegate,UITableViewDataSource

声明变量时,数组和字典,最好设置成已知类型,避免惹麻烦

 var titleArr:Array<String> = []
 var listArr:Array<Dictionary<String,String>> = []

改写父类方法时要用override关键字

override func awakeFromNib() {
  super.awakeFromNib()
  self.delegate = self
  self.dataSource = self
  self.separatorStyle = UITableViewCellSeparatorStyle.none
  self.showsVerticalScrollIndicator = false
}

需要注意:避免爆红 , 一定要实现一下两种方法

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return titleArr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var identifierStr :String
    if tableView.tag == 1001 {
      identifierStr = "tableViewCell"
    }else{
      identifierStr = "tableViewCell2"
    }

    var cell:UITableViewCell = UITableViewCell.init()
    if cell.isEqual(nil){
      cell = UITableViewCell.init(style: UITableViewCellStyle.default, reuseIdentifier: identifierStr)
    }
    if indexPath.row%2 == 0{
      cell.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
    }else{
      cell.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
    }
    if tableView.tag == 1001 {
      cell.textLabel!.text = String(describing: titleArr[ indexPath.row])
      cell.textLabel?.textAlignment = NSTextAlignment.center
      cell.textLabel?.font = UIFont.boldSystemFont(ofSize: 14)
      if indexPath.row == 0 {
        cell.textLabel?.textColor = UIColor (colorLiteralRed: 16/255.0, green: 86/255.0, blue: 186/255.0, alpha: 1.0)
      }else{
        cell.textLabel?.textColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
      }

    }else{
      for (idx,value) in listArr.enumerated() {
        let label:UILabel = UILabel.init(frame: CGRect(x:idx*60,y:0,width:60,height: Int(cell.frame.size.height)))
        label.textAlignment = NSTextAlignment.center
        label.font = UIFont.boldSystemFont(ofSize: 14.0)
        if indexPath.row == 0 {
          label.textColor = UIColor (colorLiteralRed: 16/255.0, green: 86/255.0, blue: 186/255.0, alpha: 1.0)
        }else{
          label.textColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
        }
        cell.contentView .addSubview(label)
        if idx == listArr.count-1{
          cell.frame = CGRect(x:cell.frame.origin.x,y:cell.frame.origin.y,width:label.frame.origin.x+label.frame.size.width,height:cell.frame.size.height)
        }
        switch (indexPath.row) {
        case 0:
          label.text = value["date"]! + "日"

        case 1:
          label.text = value["total"]

        case 2:
          label.text = value["projectCount"]

        case 3:
          label.text = value["visitrate"]


        case 4:
          label.text = value["abandonCount"]


        case 5:
          label.text = value["abandonrate"]

        default:
          label.text = ""
        }
      }
    }
      return cell;

    }

上一篇:用于过滤空白字符的几种常见的js正则表达式pattern

栏    目:

下一篇:易语言打开文件件网页的方法

本文标题:Swift TableView实现冻结窗格功能

本文地址:http://www.codeinn.net/misctech/108240.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有