現在、UITableViewで使用されているカスタムセクションヘッダービューがいくつかあります。ビューは、UITableViewがロードされたときに表示されますが、スクロールすると消えます。私はこの記事を見ましたが、それは古いようだ:tableView section headers disappear SWIFT はここヘッダビューのために私のコードです:スクロール時にUITableViewセクションヘッダービューが消える
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
switch section {
case 0: break
default:
view.backgroundColor = UIColor.clear
let image = UIImageView(image:"Line")
image.frame = CGRect(x: 8, y: 35, width: 340, height: 1)
view.addSubview(image)
let label = UILabel()
let sectionText = self.sectionTitles[section]
label.text = sectionText
label.textColor = UIColor.white
label.font = UIFont(name:"Helvetica Neue" , size: 17)
label.frame = CGRect(x: 10, y: 8, width: 200, height: 20)
view.addSubview(label)
}
return view
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
let headerHeight: CGFloat
switch section {
case 0:
// hide the first section header
headerHeight = CGFloat.leastNonzeroMagnitude
default:
headerHeight = 40
}
return headerHeight
}
おそらく関係はありませんが、セクション0のヘッダーの高さが0になるのはなぜですか?なぜちょうど0の代わりに、本当に小さい、ほぼ0の値を返しますか? – rmaddy
私はそれを試みましたが、実際には違いはありません – SwiftyJD
より有用で非ゼロの初期フレームでヘッダービューを作成することをお勧めします。 – rmaddy