0

伸縮性のあるテーブル ビュー ヘッダーを作成しようとしましたが、オンラインの投稿で次のコードを見ました。

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

このコードを理解するのに少し苦労しています。

したがって、基本的には次のようになります (画面の高さが 0 から 500 であると仮定kTableHeaderHeight = 200):

1)最初に、プロパティtableViewで上に移動することにより、上部にパディングを追加します(この移動は、tableViewのフレームに関するものです)。では、tableView は -200 から 500 まで存在しますか?kTableHeaderHeightcontentInset

2) 次に、その境界を だけ上に移動します-kTableHeaderHeight。ではcontentOffset、-200 から 500 の領域でスクロールできるようにするだけですか? -kTableHeaderHeightこの場合、contentOffset by を使用しているのはそのためでしょうか。

4

1 に答える 1

0

1) いいえ、インセットが正の場合、200,500 のようにテーブル ビュー領域が小さくなります

2) contentOffset は tableview の状態です。したがって、オフセットを -200 に設定すると、コンテンツのインセットに関係なく、コンテンツのゼロ ポイントがテーブル ビューのゼロ ポイントから 200 に移動します。基本的に、現在のテーブルビューのコンテンツを、インセットに関してあるべき場所に配置します

したがって、そのコードが行うことは、カスタム ヘッダー用に 200 ポイントの場所を予約することです。これは、テーブル ビュー セルのコンテンツと重なることはありません (テーブル ビュー API ヘッダーまたはフッターのように)。

于 2016-08-07T09:01:36.573 に答える