我正在尝试通过此方法将高度乘数从0更改为1来创建tableView节标题的平滑外观:
.sectionHeaderHeight.multiply(by:_)其中_应该是CGFloat。
代码:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
tableView.sectionHeaderHeight.multiply(by: _)
}
不幸的是,标题似乎只能为0(隐藏)或1.
除了1之外的所有内容都会破坏UI,0到1之间的所有内容都会生成error
:
***断言失败 - [UISectionRowData refreshWithSection:tableView:tableViewRowData:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.7.47/UITableViewRowData.m:443
答案 0 :(得分:3)
要更改标题部分高度,请覆盖方法heightForHeaderInSection
。
public override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 20
}
这可能会解决您的问题。
答案 1 :(得分:2)
我建议在设置标题视图本身时添加转换,而不是尝试在何时显示动画。 请添加您选择的动画
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let aHeader = UITableViewHeaderFooterView()
let header = aHeader as UIView
var headerFrame = tableView.frame
headerFrame.size.height = 100
header.frame = headerFrame
let transition = CATransition()
transition.duration = 1.0;
transition.type = kCATransitionPush; //choose your animation
header.layer.add(transition, forKey: nil)
return header
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 100
}