2016-08-04 1 views
0

私は伸縮性のあるテーブルビューのヘッダーを作成しようと、私はポストをオンライン上でこのコードを見た:私はこのコードを理解少し問題を抱えていテーブルビューContentInsetとContentOffset

override func viewDidLoad() { 
    tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0) 
    tableView.contentOffset = CGPoint(x: 0, , y: -kTableHeaderHeight) 
    updateHeaderView() 
} 

。だから、基本的にそれが何をしているか

される(画面を想定するとは、高さが500から0とkTableHeaderHeight = 200です):

1)これは、最初にkTableHeaderHeightでそれを動かすことでtableViewの先頭にパディングを追加してcontentInsetプロパティ(この移動はtableViewのフレームを基準にしています)。では、tableViewは-200から500まで存在しますか?

2)次に、範囲を-kTableHeaderHeightだけ上に移動します。したがって、contentOffsetは、-200〜500の領域でスクロール可能にするだけですか?ですから、なぜこの場合、contentOffsetを-kTableHeaderHeightで使用していますか?挿入図が正の場合

答えて

1

1)いいえ、それはcontentOffsetは、テーブルビューの状態である)200500

2と同様に、テーブルビュー面積が小さくなります。オフセットを-200に設定すると、コンテンツのインセットに関係なく、テーブルビューのゼロ点からコンテンツのゼロ点が200に移動します。基本的には現在のテーブルビューの内容をインセットに関する場所に配置します

したがって、カスタムヘッダーの200ポイントのプレースメントはテーブルビューのセルの内容と重複しません(テーブルビューのAPIヘッダーまたはフッターのように)

関連する問題