2012-10-24 20 views
8

enter image description hereWie überlappt man UITableViewCells?

Wenn Sie auf den Screenshot anschauen, werden Sie feststellen, dass jede UITableViewCell sind 20% vom oberen Abschnitt der oberen Zelle Tableview überlappt.

Gibt es eine Möglichkeit, wie wir Zellen überlappen können?

+0

Ja was hast du probiert ??? – TheTiger

+0

Ich schätze es sehr, wenn Sie an einer Idee für die Implementierung teilnehmen, anstatt nur darauf hinzuweisen. Für Ihre Informationen habe ich mit http://i.stack.imgur.com/uSHXS.png diese Art von Sachen versucht, aber es wird nicht funktionieren, weil ich bestimmte andere Animationen habe, die die Lücken zwischen Zellen erweitern werden. Vielen Dank – Tariq

+0

@ Tariq-iPHONEProgrammer - Sie sollten alle Ihre Anforderungen in Ihrer Frage erwähnen, denn wenn jemand antwortet, wird er Antwort geben, was Sie in Ihrer Frage gefragt .... Er weiß nicht, was Sie extra zu tun haben. – TheTiger

Antwort

13

Ich habe es nie versucht, aber diese Art von Logik wird funktionieren. Denken Sie daran, dass Sie im überlappenden Bereich keine Berührung bekommen.

1) Fügen Sie Ihre Unteransicht zu cell.contentView hinzu, stellen Sie sicher, Unteransicht Höhe ist größer als rowHeight Ihrer TableView.

float overlapHeight = 10.0; 

subView.frame = CGRectMake(0.0, -10.0, 
        your_subview_width, rowHeight + overlapHeight); 

2) Fügen Sie diesen Code, so dass Ihr Zelleninhalt nicht außerhalb seines Rahmens Clip wird

cell.clipsToBounds = NO; 
cell.contentView.clipsToBounds = NO; 

3) Nun wird Ihre Zelle überlappen, aber es wird durch eine Markierung, um die Grenzen sein der Zelle. Um zu vermeiden, dass willDisplayCell Delegatfunktion

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    cell.backgroundColor = [UIColor clearColor]; 
} 
+1

@ downvoter care zu kommentieren – Krishnabhadra

+0

Ja, wer unten abstimmen sollte er erklären, warum er das andere weise tat, er spielt nur damit. – TheTiger

+0

Es scheint, dass diese Methode nicht in ios7 funktioniert? Alles wird immer noch abgeschnitten. – Ohmnastrum

1

Der Überlappungseffekt realisieren kann visuell erreicht werden, indem Sie Ihre Zelle aus zwei Teilen zu komponieren: einen schmalen auf der Oberseite und einen großen einer auf der Unterseite. Der untere Teil ist einfach: Es ist ein graues Rechteck mit einer Text-/Bildkomponente. Der Trick ist in dem Teil auf der Oberseite.

Die Höhe des oberen Teils entspricht der Höhe der gesamten farbigen Registerkarte. Ihr Programm kann eines von zwei Bildern dort ablegen - entweder eine Registerkarte oben auf einem schmalen grauen Streifen, der das Ende der vorherigen Zelle darstellt, oder eine Registerkarte oben auf einem braunen Hintergrund. Innerhalb Ihrer tableView:cellForRowAtIndexPath: überprüfen Sie die row. Wenn es Null ist, wählen Sie das Bild mit dem braunen Hintergrund aus; Andernfalls wählen Sie das Bild mit dem grauen Streifen im Hintergrund oben aus.

0

Keine Notwendigkeit, die Zellen zu überlappen. Ihre Top-Zelle sollte wie folgt aussehen:

enter image description here

und alle übrigen Zellen sollen wie folgt aussehen:

enter image description here

Ihr tableFooterView sollte nur einen grauen Balken sein (der „Boden“ einen Zelle)

+0

zu setzen, habe ich diesen Ansatz versucht, aber das Problem ist, dass Sie das Bild von unten schneiden. Aber ich habe bestimmte andere Animationen für diesen Zweck Ich brauche ein komplettes Zellbild. Sagen wir zum Beispiel, wenn ich irgendeine Zelle berühren werde, dann muss ich die Lücke zwischen zwei Zellen vergrößern, weshalb ich die Bilder nicht zuschneiden kann :) – Tariq

Verwandte Themen