🧬
[Swift]TableView Footerに説明文 超速サンプル
UITableViewのとあるsectionのフッターに説明文を置きたいときがある。
UITextViewを利用し改行にも対応。
AutoLayoutで自動サイズ調整。
extension MyTableViewController : UITableViewDataSource {
func tableView(_ tableView: UITableView, estimatedHeightForFooterInSection section: Int) -> CGFloat {
return 20
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
switch section {
case 0:
return UITableView.automaticDimension
default: break
}
return CGFloat.leastNormalMagnitude
}
}
extension MyTableViewController : UITableViewDelegate {
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
if section == 0 {
let footerView = makeFooterView()
return footerView
}
return nil
}
private func makeFooterView() -> UIView {
let footerView = UIView()
let textView = UITextView()
textView.translatesAutoresizingMaskIntoConstraints = false
textView.text = "表示したいテキストをここに書きます"
textView.textColor = .gray
textView.backgroundColor = .clear
textView.isScrollEnabled = false
textView.isEditable = false
textView.isSelectable = false
textView.textContainer.lineBreakMode = .byCharWrapping
footerView.addSubview(textView)
NSLayoutConstraint.activate([
textView.leadingAnchor.constraint(equalTo: footerView.leadingAnchor, constant: 12.0),
textView.trailingAnchor.constraint(equalTo: footerView.trailingAnchor, constant: -12.0),
textView.topAnchor.constraint(equalTo: footerView.topAnchor),
textView.bottomAnchor.constraint(equalTo: footerView.bottomAnchor)
])
return footerView
}
}
Discussion