2010-12-10 6 views
2

Ich habe online gesucht und nichts gefunden. Ist es auf dem iPad möglich, dass die Elemente nicht auf dem Bildschirm erscheinen, sondern zu einer neuen Spalte auf der rechten Seite fließen?iPad: Tabellenansicht mit mehreren fließenden Spalten möglich?

Postleitzahl:

-------------- top of screen 
01 
02 
03 
04 
05 
-------------- bottom of screen 
06 
07 
08 
09 <-- these items are "scrolled" off the screen 
10 
11 
12 
13 

Want:

-------------- top of screen 
01 |06 |11 
02 |07 |12 
03 |08 |13  --> Columns grow to the right 
04 |09 | 
05 |10 | 
-------------- bottom of screen 
+0

Dies ist die Art von UI-Design, die Apple gerne zurückweisen würde. Trete leicht. –

Antwort

2

Gedankenexperiment: Verwenden Sie drei Tabellenansichten, aber verwenden Sie dieselbe Datenquelle/denselben Delegaten. Verdrahten Sie es so, dass immer dann, wenn eine Ansicht scrollt (d. H. Durch –scrollViewDidScroll:), die anderen Ansichten mit -setContentOffset manuell in die entsprechende Position gerollt werden. Sie sollten jedoch vor möglichen Rundrufen aufpassen. Ich kann nicht garantieren, dass das funktioniert, aber das ist so nah wie möglich, dass ich mir vorstellen kann.

Sie können auch zusätzliche Zeilen oben und unten für bestimmte Ansichten hinzufügen, wenn Sie möchten, dass die Ansicht ganz links nach unten scrollen kann, oder die Ansicht ganz rechts, um nach oben zu scrollen.

Edit: In den meisten Fällen ist es so einfach wie es scheint. Ich habe es einfach ausprobiert und war nicht so schlecht. Es gibt einige kleine Macken, auf die Sie achten müssen, einschließlich der zirkulären Aufrufe und der Verlangsamung von Scrollviews.

Für den Kreis Anrufe mich bereits erwähnt, konnte ich meinen Weg um es durch den folgenden Code:

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ 
    tableView1.delegate = nil; 
    tableView2.delegate = nil; 
    tableView3.delegate = nil; 
    scrollView.delegate = self; 
} 

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 
{ 
    tableView1.delegate = self; 
    tableView2.delegate = self; 
    tableView3.delegate = self; 
} 

Wie für die Verzögerung danach, es ist nicht so sehr, dass die anderen Ansichten werden zusammen mit ihnen nicht verzögern , aber die Ansichten wirken ein wenig wackelig, wenn Sie eine der anderen berühren, während sie langsamer werden. Ich habe es in diesem Fall nicht versucht, um zu sehen, ob es 100% funktioniert, aber Sie sollten versuchen, von here zu codieren, um die Verzögerung in ihren Spuren zu stoppen, wenn Sie anfangen, es wieder zu ziehen.

+0

Das war die Art von Lösung, an die ich dachte, außer dynamisch. Das heißt, sobald eine bestimmte Tabelle die maximale Anzahl von Elementen enthält, die passen können, ohne scrollen zu müssen, erstellen Sie eine neue, genau die rechts von der letzten, und fangen Sie an, sie zu füllen. –

2

Sie werden Ihre eigene Klasse, dies zu tun zu schreiben. Der ganze Sinn einer Tabellenansicht besteht darin, die Liste in einer einzelnen vertikalen Spalte zu halten. Aus diesem Grund funktioniert die Split-Ansicht auf dem iPad so gut. Sie können zwei Ebenen einer Datenhierarchie gleichzeitig anzeigen.

Verwandte Themen