TableView实现页眉和页脚
在UItableView中header和footer是很常见的,而且他能让你实现很复杂的功能,我们见过最多的就是下拉刷新和上啦加载更多,当然你还可以在上面添加一个其他视图或者标题什么的,这里只是简单的介绍。
UITableView具有var tableHeaderView:UIView?属性和var tableFooterView:UIView?属性,可以通过给其赋值来创建列表TableView的页眉和页脚。
效果图如下:
代码如下:
import UIKit class ViewController: UIViewController,UITableViewDelegate, UITableViewDataSource,UIGestureRecognizerDelegate { var tableView:UITableView? var ctrlnames:[String] = ["UILabel 标签","UIButton 按钮","UIDatePiker 日期选择器"] override func viewDidLoad() { super.viewDidLoad() //创建表视图 self.tableView = UITableView(frame: UIScreen.mainScreen().applicationFrame, style:UITableViewStyle.Plain) self.tableView!.delegate = self self.tableView!.dataSource = self //创建一个重用的单元格 self.tableView!.registerClass(UITableViewCell.self, forCellReuseIdentifier: "SwiftCell") self.view.addSubview(self.tableView!) //给TableView添加表头页眉 var headerView:UIView = UIView(frame: CGRectMake(,,tableView!.frame.size.width,)) var headerlabel:UILabel = UILabel(frame: headerView.bounds) headerlabel.textColor = UIColor.whiteColor() headerlabel.backgroundColor = UIColor.clearColor() headerlabel.font = UIFont.systemFontOfSize() headerlabel.text = "TableView 页眉" headerView.addSubview(headerlabel) headerView.backgroundColor = UIColor.blackColor() tableView?.tableHeaderView = headerView //给TableView添加表头页尾 var footerView:UIView = UIView(frame: CGRectMake(,,tableView!.frame.size.width,)) var footerlabel:UILabel = UILabel(frame: footerView.bounds) footerlabel.textColor = UIColor.whiteColor() footerlabel.backgroundColor = UIColor.clearColor() footerlabel.font = UIFont.systemFontOfSize() footerlabel.text = "TableView 页眉" footerView.addSubview(footerlabel) footerView.backgroundColor = UIColor.blackColor() tableView?.tableFooterView = footerView } //在本例中,只有一个分区 func numberOfSectionsInTableView(tableView: UITableView!) -> Int { ; } //返回表格行数(也就是返回控件数) func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.ctrlnames.count } //创建各单元显示内容(创建参数indexPath指定的单元) func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { //为了提供表格显示性能,已创建完成的单元需重复使用 let identify:String = "SwiftCell" //同一形式的单元格重复使用,在声明时已注册 let cell = tableView.dequeueReusableCellWithIdentifier(identify, forIndexPath: indexPath) as UITableViewCell cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator cell.textLabel?.text = self.ctrlnames[indexPath.row] return cell } }