表格视图的contentSize
比框架高约20。它应该与框架相同,因为我已经拒绝了所有相关的东西。
我在一个且唯一一个部分中有三行。每行的高度为46。 所以总高度应该是46 * 3 = 138。但事实并非如此。
这让我很困惑。部分页眉和页脚都是0.001。表视图继承自MATableView
,其初始化程序如下所示。
class MATableView: UITableView {a
init(frame: CGRect, presentOn object: AnyObject) {
super.init(frame: frame, style: .grouped)
delegate = (object as! UITableViewDelegate)
dataSource = (object as! UITableViewDataSource)
bounces = false
backgroundColor = .white
separatorStyle = .none
tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0.01))
tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0.01))
showsVerticalScrollIndicator = false
estimatedRowHeight = 0
estimatedSectionHeaderHeight = 0
estimatedSectionFooterHeight = 0
showsVerticalScrollIndicator = false
if #available(iOS 11.0, *) {
self.contentInsetAdjustmentBehavior = .never
}
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
// In the delegate controller
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.001
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.001
}
任何建议将被认真考虑。
您必须为viewForHeaderInSection返回nil
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return nil
}
您估计的高度应大于0.将它们设置为近似值。
只需将sectionHeaderHeight
和sectionFooterHeight
设置为0
即可快速完成。
init(frame: CGRect, presentOn object: AnyObject) {
super.init(frame: frame, style: .grouped)
...
sectionHeaderHeight = 0
sectionFooterHeight = 0
...
}