Swift TableView实现冻结窗格功能

今天做了一个简例,用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;

    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Swift开发之UITableView状态切换效果

    效果 源码 https://github.com/YouXianMing/Swift-Animations // // TableViewTapAnimationController.swift // Swift-Animations // // Created by YouXianMing on 16/8/7. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit class TableViewTapAni

  • Swift实现多个TableView侧滑与切换效果

    在Android中我们常常使用ListView来表示列表,来显示类似的呈现列表样式的结果.来到iOS中,这种控件称之为TableView.这里我们将会通过使用ScrollView和TableView结合的方式来实现可以侧滑显示的列表,这将会大大提高用户体验.先看一下实现效果: . . . 具体实现步骤如下: (1)创建一个iOS项目,Language选择Swift,然后在Main.storyboard中拖入一个ScrollView,即滚动控件,界面设计如图: . (2)然后拖动控件绑定到代码中:

  • Swift TableView实现冻结窗格功能

    今天做了一个简例,用tableView实现excel冻结窗格功能 Demo:https://git.oschina.net/sunflowrs/FreezePanes.git 初始化Tableview 实现代理 class BasicTableView:UITableView,UITableViewDelegate,UITableViewDataSource 声明变量时,数组和字典,最好设置成已知类型,避免惹麻烦 var titleArr:Array<String> = [] var list

  • JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题

    正文 前言:一年前,博主分享过一篇关于bootstrapTable组件冻结列的解决方案  JS组件系列--Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案 ,通过该篇,确实可以实现bootstrapTable的冻结列效果,并且可以兼容ie浏览器.这一年的时间,不断有园友以及群里面的朋友问过我关于固定高度之后,冻结列页面效果不能对齐的问题,奈何博主太忙,一直没有抽空将这个问题优化.最近项目里面也不断有人提过这个bug,这下子不能再推了,必须要直面"惨淡的bug",于

  • JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案

    前言:最近项目里面需要用到表格的冻结列功能,所谓"冻结列",就是某些情况下表格的列比较多,需要固定前面的几列,后面的列滚动.遗憾的是,bootstrap table里自带的fixed column功能有一点bug,于是和同事讨论该如何解决,于是就有了这篇文章. 一.起因回顾 最近项目里面有一个表格需求,该表格列是动态产生的,而且列的数量操作一定值以后就会出现横向滚动条,滚动的时候需要前面几列固定.也就是所谓的excel的冻结列功能.该如何实现呢?不用多说,当然是查文档,于是找到了这篇h

  • Swift缩放并填充图片功能的实现

    摘要 直接操作图片来实现它的缩放或者填充多余空间,首选 UIGraphicsBeginImageContext 函数来实现,它就相当于一个画布,你甚至可以用它来涂鸦. 最近有一个需求,就是将图片先等比例缩放到指定大小,然后将空余出来空间填充为黑色,返回指定大小的图片. 这种直接操作图片的需求,就要考虑使用 UIGraphicsBeginImageContext 函数实现.它可以理解为一个画布,我们只需要把图片放在画布的对应位置,把画布的多余地方全部涂成黑色就完成. 实现 先看代码,然后再分析:

  • iOS tableview实现简单搜索功能

    本文实例为大家分享了tableview实现搜索功能的具体代码,供大家参考,具体内容如下 一.先用xcode创建好工程 通过xib文件来初始化视图控制器 二.编写代码 1.先为NSDictionary创建一个分类 实现字典的深拷贝 .h文件 #import <Foundation/Foundation.h> @interface NSDictionary (MutableDeepCopy) - (NSMutableDictionary *)mutableDeepCopy; @end .m文件 #

  • Swift实现倒计时5秒功能

    一般在项目的"引导页"有个功能,倒计时5秒结束后,然后可以允许用户点击跳过按钮跳过引导页.同样在"登录"和"注册"页面也有类似功能,发送验证码后,计时60秒后才允许用户再次请求重新发送验证码. 计时方式一(sleep + performSelector) 通过调用sleep(1)阻塞线程的方式来达到目的 import UIKit class GAPublishViewController: GABaseViewController { var j

  • asp.net实现固定GridView标题栏的方法(冻结列功能)

    本文实例讲述了asp.net实现固定GridView标题栏的方法.分享给大家供大家参考,具体如下: <%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

  • Swift语言与Applescript的区别?AppleScript的发展状况?

    本人为非开发人员(科研工作者),使用Mac,最近了解到Applescript对提高工作效率有很多帮助,希望学一下Applescript.不过最近10.10系统将发布,新的swift语言据说也能实现AppleScript的功能.我希望能了解Applescript最近的发展状况(Apple是否会逐渐淘汰这门语言),以及学习了swift是不是就不用学AppleScript了.希望高人解答,感谢大家 1.什么是applescript AppleScript是用在MacOSX上的脚本语言,和操作系统结合的

  • 用Swift编写自动录音器

    用swift编写自动录音器,自动录音和一般录音的不同点在于:不需要像微信里面需要按下录音然后松手结束,而是根据说话声音的大小自动判断该录音和该停止的点,然后可以等到录音结束之后马上播放出来.此效果很像会说话的汤姆猫那样. 在自动录音的初始化阶段需要建立两个录音对象,一个需要一直录音充当监听器的功能,另一个用来在需要的时刻录音.具体流程大致如下 准备工作 这个项目使用swift写的,设置的成员变量如下 如果你不是在董铂然博客园看到本文请点击查看原文. // 录音器 var recoder:AVAu

  • Swift 编程语言入门教程

    原文地址:http://gashero.iteye.com/blog/2075324 目录 1   简介 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 7   枚举与结构 1   简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍<The Swift Programming Language>中摘录和提取而成.希望对各位的iOS&OSX开发有所帮助. Swift是供iOS和OS X应用编程的新编程语言,基于C和Obj

随机推荐