2016-08-04 6 views
0

ich versucht, eine dehnbare Tabellenansicht Header zu erstellen, und ich sah diesen Code auf einem Pfosten online:Tableview ContentInset und Content

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

Ich bin ein wenig Mühe, diesen Code zu verstehen.

So im Wesentlichen, was es tut, ist (der Bildschirm Unter der Annahme, 0 bis 500 in der Höhe und kTableHeaderHeight = 200):

1) Es wird eine erste Addiereinrichtung Polsterung an den oberen Rand des tableView indem man es durch kTableHeaderHeight in der Bewegungs contentInset Eigenschaft (diese Verschiebung ist in Bezug auf den Rahmen der TableView). Also existiert nun die TableView von -200 bis 500?

2) Dann verschiebt es seine Grenzen um -kTableHeaderHeight. Also macht die contentOffset es nur scrollbar in der Region -200 bis 500? Also, warum benutzen wir contentOffset von -kTableHeaderHeight in diesem Fall?

Antwort

1

1) Nein, wenn Einschub positiv ist, dann macht es Tabellensicht Fläche kleiner, wie 200.500

2) Content ist Zustand tableview. Wenn Sie also den Offset auf -200 setzen, verschiebt sich der Inhaltsnullpunkt unabhängig vom Inhaltsinset vom Nullpunkt der Tabellenansicht auf 200. Im Grunde genommen legte es aktuellen Tabellenansicht Inhalt zu platzieren, wo es in Bezug auf Einfügung sein sollte

Also was dieser Code ist Reserven 200point Platz für benutzerdefinierte Header, die nie mit Tabellenansicht Zellen Inhalt überlappt (wie Tabellenansicht API Header oder Fußzeilen tun)