UITableViewHeaderFooterViewのサブクラスを作成
UITableViewHeaderFooterViewを継承したクラスを作成します。1 2 3 4 5 6 7 8 9 10 11 | import UIKit class CustomTableViewHeaderFooterView: UITableViewHeaderFooterView { @IBOutlet weak var headerView: UIView! override func awakeFromNib() { super .awakeFromNib() // Initialization code } } |
Nibファイルを作成
Header用のViewを作成します。TableViewにセット
Cellと同様にtableView.registerNibでセットしておきます。tableView:viewForHeaderInSectionでロードして戻り値とします。注意点としては、ViewのサイズがAutolayoutになっていないので、frame.sizeでサイズ指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | class ViewController: UITableViewController { override func viewDidLoad() { super .viewDidLoad() let nib:UINib = UINib(nibName: "CustomTableViewHeaderFooterView" , bundle: nil) tableView.registerNib(nib, forHeaderFooterViewReuseIdentifier: "CustomTableViewHeaderFooterView" ) } override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } // header height override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 44 } // header view override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { let header :CustomTableViewHeaderFooterView = self.tableView.dequeueReusableHeaderFooterViewWithIdentifier( "CustomTableViewHeaderFooterView" ) as! CustomTableViewHeaderFooterView header.headerView.frame.size = CGRectMake( 0 , 0 , tableView.frame.size.width, 44 ).size return header } } |
0 件のコメント:
コメントを投稿