var data: [[String]]!

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

let tableView = UITableView(frame: self.view.bounds, style: .Plain)

tableView.dataSource = self

tableView.delegate = self

self.view.addSubview(tableView)

//数据源

let resourcePath = NSBundle.mainBundle().pathForResource("font", ofType: "plist")

self.data = NSArray(contentsOfFile: resourcePath!)! as! [[String]]

}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {

return self.data.count

}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return self.data[section].count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let identifier = "cell"

var cell = tableView.dequeueReusableCellWithIdentifier(identifier)

if cell == nil {

cell = UITableViewCell(style: .Default, reuseIdentifier: identifier)

}

cell?.textLabel?.text = self.data[indexPath.section][indexPath.row]

return cell!

}

//section的头视图标题

//    func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

//        return "第\(section)个组的头视图"

//    }

//

//    //section的尾视图标题

//    func tableView(tableView: UITableView, titleForFooterInSection section: Int) -> String? {

//        return "第\(section)个组的尾视图"

//    }

//自定义头视图

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

//让headerView作为组的头视图,不需要设置headerView的frame,但是一定要指定高度

let headerView = UIView(frame: CGRectZero)

headerView.backgroundColor = UIColor.grayColor()

let titleLabel = UILabel(frame: CGRect(x: 130, y: 10, width: 150, height: 20))

titleLabel.font = UIFont.boldSystemFontOfSize(16)

titleLabel.textColor = UIColor.greenColor()

titleLabel.text = "第\(section)个组的头视图"

headerView.addSubview(titleLabel)

return headerView

}

//自定义尾部视图

func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {

let footerView = UIView(frame: CGRectZero)

footerView.backgroundColor = UIColor.darkGrayColor()

let titleLabel = UILabel(frame: CGRect(x: 130, y: 40, width: 150, height: 20))

titleLabel.font = UIFont.boldSystemFontOfSize(16)

titleLabel.textColor = UIColor.redColor()

titleLabel.text = "第\(section)个组的尾视图"

footerView.addSubview(titleLabel)

return footerView

}

//指定组的尾部视图的高度

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {

return 100

}

//指定组的头视图的高度

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

return 50

}

Swift自定义头视图和尾视图的更多相关文章

  1. UICollectionview的头视图和尾视图

    UITableView有头视图和尾视图,那么UICollectionView有没有头视图和尾视图呢? 答案是有的. 1.新建一个类,必须继承自 UICollectionReusableView. 2. ...

  2. iOS TabeView 头视图和尾视图不滑动的实现

    因项目有需求不能让section中的头尾视图滑动,顾根据网上的一些资料和自己整理的思路,已实现了不滑动效果,上代码,啥都说了,搞了2个小时都是泪.... 1.创建一个tableview _mainTa ...

  3. iOS之UITableView组头组尾视图/标题悬停

    最近笔者在公司的iOS开发中,有一个iOS开发同事跑来问了两个问题:1.给UITableView设置了组头和组尾视图,但是一直显示不出来?2.UITableView的section的header和fo ...

  4. ##DAY3 自定义视图、视图控制器、视图控制器指定视图、loadView、 viewDidLoad、MVC、屏幕旋转、内存警告

    ##DAY3 自定义视图.视图控制器.视图控制器指定视图.loadView. viewDidLoad.MVC.屏幕旋转.内存警告 #pragma mark ———————自定义视图的步骤 —————— ...

  5. 隐藏自定义的tabbar之后,push到B视图,B视图的键盘工具条无法响应点击事件

    我的情况如下: 在TabbarViewController中隐藏了系统的tabbar,然后自定义tabbar,A B C D 4个视图都有UINavigationController,A视图 使用的是 ...

  6. SpringMVC自定义视图Excel视图和PDF视图

    SpringMVC自定义视图 Excel视图和PDF视图 SpringMVC杂记(十一) 使用Excel视图 Spring MVC 视图解析器(ViewResolver ) java实现导出excel ...

  7. ShareSDK(iOS版)开发实践:自定义授权视图和分享视图导航栏

    最近很多人问ShareSDK的授权视图和分享视图的导航栏样式与应用风格不一致,能否修改导航栏的样式?那么这里我就2.6.1版本进行说明(还在使用1.x版本的朋友建议升级到2.x版本,在新版本中可定制的 ...

  8. IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较

    //代码块与代替代理的设计方法 我就以在自定义视图中(非视图控制器,不能实现视图控制功能),通过代理和代码块两种方法分别实现视图的跳转,进行对比 首先自定义了一个视图,上面有一个已经注册了得BUtto ...

  9. iOS10 UI教程视图的绘制与视图控制器和视图

    iOS10 UI教程视图的绘制与视图控制器和视图 iOS10 UI视图的绘制 iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用.这些应用大多是在UIView上进行绘制的. ...

随机推荐

  1. STL学习笔记---STL简介

    1.概述 STL是通用类模版和算法的集合,它提供给程序员一些标准的数据结构和算法的实现.STL三大关键组成: 容器(Containers),用来管理类对象的集合 迭代器(Iterators),用来在一 ...

  2. Saltstack入门

    一.Salt概述 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行). 一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点 ...

  3. 234. Palindrome Linked List(判断链表是否回文)

    Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...

  4. python按行读取文件,如何去掉换行符"\n"

    for line in file.readlines(): line=line.strip('\n')

  5. SQL学习笔记四(补充-1-1)之MySQL单表查询补充部分:SQL逻辑查询语句执行顺序

    阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELE ...

  6. JavaScript 预编译(变量提升和函数提升的原理)

    本文部分内容转自https://www.cnblogs.com/CBDoctor/p/3745246.html 1.变量提升 console.log(global); // undefined var ...

  7. Javaworkers团队最终项目总结

    Javaworkers团队最终项目总结 小组成员 20145205武钰 20145222黄亚奇 20145235李涛 20145103冯文华 团队项目总结 案例提出及工程用时 本次项目由十一到十六周共 ...

  8. 【Rpc】基于开源Dubbo分布式RPC服务框架的部署整合

    一.前言 Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用.整合.集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD.当当在内的众多互联网项目 ...

  9. CycleGAN 配置及其实现

    目录 pytorch-CycleGAN-and-pix2pix 环境要求 安装 Train 用已有数据集训练 Test 预训练模型 训练与测试自己的数据集 遇到的问题 Reference pytorc ...

  10. jQuery实现鼠标点击Div区域外隐藏Div

    冒泡定义:当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这一过程被称为事件冒泡:这个事件从原始元素开始一直冒泡到DOM树的最上层.(摘自网络 ...