UITableView Quickies


Aus Macwrench

Wechseln zu: Navigation, Suche

Ein paar hilfreiche Tipps rund um die Klasse UITableView:

  Info.png
Hinweis: die Klasse UITableView ist von UIScrollView abgeleitet und implementiert daher auch deren Methoden
 

Inhaltsverzeichnis

Schwebende Section-Header deaktivieren

Abschnitts-Überschriften in Tabellen vom Typ UITableViewStylePlain sind normalerwiese schwebend - sie bleiben also beim nach Unten Scrollen am oberen Bildschirmrand so lange "kleben", bis der nächste Abschnitt in den sichtbaren Bereich kommt.

Public API

Für App-Store Veröffentlichungen dürfen keine private APIs verwendet werden; eine Möglichkeit unter Verwendung öffentlicher Schnittstellen ist diese hier (allerdings in dieser Form nur sinnvoll, wenn die section header alle dieselbe Höhe haben):

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
	CGFloat sectionHeaderHeight = 24.0; // section header view height
	if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
		scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
	} else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
		scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
	}
}

Private API

Das lässt sich auch ohne den Umweg über UITableViewStyleGrouped und die damit verbundenen Änderungen in der datasource auch durch die Erstellung einer eigenen subclass von UITableView und dem dortigen Überladen der folgenden beiden Methoden ändern:

- (BOOL) allowsHeaderViewsToFloat {
    return NO;
}
- (BOOL) allowsFooterViewsToFloat {
    return NO;
}

Siehe auch

Apple Reference Library

Ansichten