2017-02-23 25 views
1

現在、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の代わりに、本当に小さい、ほぼ0の値を返しますか? – rmaddy

+0

私はそれを試みましたが、実際には違いはありません – SwiftyJD

+1

より有用で非ゼロの初期フレームでヘッダービューを作成することをお勧めします。 – rmaddy

答えて

2

テーブルのUITableViewStyleプロパティがUITableViewStylePlainに設定されている場合、ヘッダーのみが固定されたままです。 UITableViewStyleGroupedに設定すると、ヘッダーがセルと共に上にスクロールします。

あなたがUITableViewStylePlain

にUITableViewStyleを設定する必要がありますよりも上に固執するヘッダを修正したい場合は、細胞をスクロールアップしたいのであれば、あなたがUITableViewStyleGroupedUITableViewStyleを設定する必要があるよりも、

+0

MineはUITableViewStylePlainであり、行がスクロールされた後にヘッダーが消えています。 – htafoya

関連する問題