在使用UITableView的grouped樣式時(shí),系統(tǒng)會在每個section組以及頭尾設(shè)置間距;如果想取消這些間距,可以使用一下方法:
1.首先消除頂部間距:
if #available(iOS 15.0, *) {
tableView.sectionHeaderTopPadding = 0
}
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
2.消除section之間的間距
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return nil
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return nil
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01
}
注意,這里的高度不能時(shí)0,否則系統(tǒng)會采用默認(rèn)值;可以設(shè)置一個極小值,例如0.0001等。
3.消除底部間距
tableView.tableFooterView = UIView(frame: .init(origin: .zero, size: .init(width: 0.01, height: 0.01)))
同樣,這里的高度也不能設(shè)置為0,否則系統(tǒng)會采用默認(rèn)高度。