我使用一个表格视图控制器,我的三个部分都有标题。我希望能够改变标题的外观,这是最好的方法。
类似于Snapchat故事页面标题的外观
答案 0 :(得分:6)
您可以通过在故事板中创建自定义name: SingleSuite
threadCount: 3
parallel: methods
tests:
- name: Regression
classes:
- test.ApiTest
来自定义节标题。
您设计3个部分与故事板中的快照相同。
这是两个部分的示例,其中包含两个不同的UITableViewCell
单元格
UITableView
创建两个自定义func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
//Say 2 section with two different look
if section == 0{
let header = tableView.dequeueReusableCellWithIdentifier("HeaderTableViewCell1")! as! HeaderTableViewCell1
header._lblGroupName.text = ""
header._btnExpand.addTarget(self, action: "hideSection:", forControlEvents: .TouchUpInside)
header._lblTotalCount.text = ""
return header.contentView
}
else{
let header = tableView.dequeueReusableCellWithIdentifier("HeaderTableViewCell2")! as! HeaderTableViewCell2
header._lblGroupName.text = ""
header._btnExpand.addTarget(self, action: "hideSection:", forControlEvents: .TouchUpInside)
header._lblTotalCount.text = ""
return header.contentView
}
}
类。设置插座
UITableViewCell
答案 1 :(得分:0)
为标题创建自定义视图,并使用以下任一方式注册:
- (void)registerNib:(nullable UINib *)nib forHeaderFooterViewReuseIdentifier:(NSString *)identifier;
- (void)registerClass:(nullable Class)aClass forHeaderFooterViewReuseIdentifier:(NSString *)identifier;
并在以下位置进行自定义:
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section;
UPD:
Swift版本:
在viewDidLoad
注册你的笔尖:
override func viewDidLoad() {
super.viewDidLoad()
tableView.registerNib(UINib(nibName: "YourNibName", bundle:nil), forHeaderFooterViewReuseIdentifier: "YourIdentifier")
}
实施UITableViewDelegate
方法:
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
并自定义<{p>}中的view
答案 2 :(得分:0)
只需添加此项并执行所需的自定义
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: tableView.sectionHeaderHeight))
// Do your customization
return view
}
答案 3 :(得分:0)
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerCell = tableView.dequeueReusableCellWithIdentifier("HeaderCell") as! CustomHeaderCell
headerCell.backgroundColor = UIColor.cyanColor()
switch (section) {
case 0:
// Do your customization
//return sectionHeaderView
case 1:
// Do your customization
//return sectionHeaderView
case 2:
// Do your customization
//return sectionHeaderView
default:
//return sectionHeaderView
}
return headerCell
}
override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 40))
footerView.backgroundColor = UIColor.blackColor()
return footerView
}