2010-02-06 8 views
5

Wie kann ich eine benutzerdefinierte Bildlaufleiste für ein UITableView erstellen?UITableView Benutzerdefinierte Bildlaufleiste

Ich möchte den Standard entfernen, der erscheint, wenn das Tracking beginnt und der verschwindet, wenn das Tracking endet. Ich möchte stattdessen eine ähnliche in einem Computerprogramm haben: (a) es ist auf der rechten Seite des Bildschirms und permanent sichtbar; (b) Durch manuelles Scrollen der Leiste wird die UITableView zur entsprechenden Position gerollt; (c) Scrollen durch die UITableView blättert die Bildlaufleiste in geeigneter Weise (ohne den Standard anzuzeigen, den Apple bietet). Die Schwierigkeit in (b) und (c) besteht darin, dass Apple, soweit ich weiß, nur Methoden zur Verfügung stellt, um zu einer bestimmten Zeile/einem bestimmten Abschnitt zu scrollen, aber nicht zu drei Vierteln einer Zeile abzurollen . Wenn ich zum Beispiel die Bildlaufleiste durchblättern möchte, scrollt das UITableView anschließend nur bis zum Anfang einer Zeile/Zelle. Die Methode ich spreche ist:

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 

Hat jemand bevor Sie eine benutzerdefinierte Bildlaufleiste in ihrer UITableView umgesetzt? Oder kann mir jemand helfen, einen Weg finden, um die folgenden Probleme zu lösen:

  • Scrollen auf einen beliebigen Punkt in der UITableView statt zu Beginn einer Zelle

  • die Standard-Bildlaufleiste zu entfernen und zu verhindern

  • Ändern der Bildlaufleiste Bild/Animation/was auch immer als UITableView erscheinen gescrollt

Tha Nein!


+0

Warum würden Sie dieses Verhalten jemals wollen? Ich kann mir nicht vorstellen, wo dies besser wäre als ein Index mit Abschnitten rechts von der Tabellenansicht (wie beispielsweise in der App "Kontakte" zu sehen ist). Es stimmt auch nicht mit Apples HIG überein und könnte Ihre App vom App Store ablehnen. – MrMage

+1

teilweise beantwortet hier "http://stackoverflow.com/questions/7976593/change-width-and-colour-of-scroll-bar-in-guidableview-iphone" – alekhine

Antwort

2

UITableView erbt von UIScrollView, dh Sie können eine der vorhandenen Funktionen verwenden. In Ihrem Fall

-(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

sollte die Arbeit machen. Es bewegt den Tisch in eine beliebige Position.

die bestehende Scroll-Anzeige zu deaktivieren, verwenden

table.showsVerticalScrollIndicator = NO; 

Und Ihre eigenen hinzuzufügen, fügen Sie einfach Ihre benutzerdefinierte Ansicht!