Wie man Abstand zwischen UITableViewCell hinzufügt
Gibt es eine Möglichkeit, um Abstand zwischen UITableViewCell
?
Ich habe eine Tabelle erstellt und in jede Zelle nur ein Bild enthalten. Das Bild zugeordnet ist, um die Zelle wie diese:
cell.imageView.image = [myImages objectAtIndex:indexPath.row];
aber dadurch wird das Bild vergrößert und fit in den ganzen Zelle, und es gibt keinen Abstand zwischen den Bildern.
Oder sagen wir auf diese Weise die Höhe des Bildes sind z.B. 50, und möchte ich hinzufügen, dass 20 der Abstand zwischen den Bildern. Gibt es eine Möglichkeit, dies zu erreichen?
InformationsquelleAutor der Frage saili | 2011-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Weg, den ich erreichen hinzufügen Abstand zwischen den Zellen ist, um numberOfSections = "array count" und machen Sie jeden Abschnitt nur eine Zeile enthält. Und dann definieren headerView und seine Höhe.
InformationsquelleAutor der Antwort JonatWang
Swift Version
Aktualisiert Swift 3
Diese Antwort ist etwas allgemeiner als die ursprüngliche Frage im Interesse der zukünftigen Zuschauer. Es ist ein ergänzendes Beispiel, um die grundlegenden UITableView Beispiel für Swift.
Übersicht
Die grundlegende Idee ist, erstellen Sie einen neuen Abschnitt (anstatt eine neue Zeile) für jedes array-Element. Die Abschnitte können dann werden in Abständen über die Abschnittsüberschriften der Höhe.
Wie es zu tun
Einrichten Ihres Projekts, wie beschrieben, in UITableView Beispiel für Swift. (Das ist, fügen Sie ein
UITableView
und Haken bis dietableView
Steckdose, um den View-Controller).In den Interface Builder, ändern Sie die main-view die Hintergrundfarbe auf hellblau und die
UITableView
Hintergrundfarbe zu deaktivieren.Ersetzen Sie die ViewController.swift-code durch den folgenden.
ViewController.swift
Beachten Sie, dass
indexPath.section
ist eher alsindexPath.row
um die richtigen Werte für die array-Elemente und Tippen Sie auf Positionen.Wie bist du auf die extra-Polsterung/Raum auf der rechten und linken Seite?
Ich habe es auf die gleiche Weise fügen Sie Abstand zu einer beliebigen Ansicht. Ich benutzte auto layout constraints. Verwenden Sie einfach die pin-Werkzeug in Interface Builder hinzufügen, um den Abstand für die führende und nachfolgende Einschränkungen.
InformationsquelleAutor der Antwort Suragch
Meine einfache Lösung mit Swift :
oder eine Zeile code
Ergebnis
InformationsquelleAutor der Antwort Husam
Ich musste das tun, das gleiche Konzept mit UITableCells haben einen "Raum" zwischen Ihnen. Da kann man nicht buchstäblich, fügen Sie ein Leerzeichen zwischen den Zellen Sie können gefälschte es durch die Manipulation der UITableView die Zelle Höhe und fügt dann einen UIView der contentView Ihrer Zelle. Hier ist ein Bild von einem Prototypen, den ich in einem anderen Projekt testen wenn ich die Simulation:
Hier ist ein code (Hinweis: es gibt viele hart codierten Werte für Demo-Zwecke)
Erste, die ich brauchte, um die
heightForRowAtIndexPath
um unterschiedliche Höhen auf der UITableViewCell.Weiter, ich will manipulieren Sie das Aussehen und das Gefühl des UITableViewCells also ich weiß, dass in der
willDisplayCell:(NewsUITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
Methode.Beachten Sie, dass ich aus meinem whiteRoundedCornerView Höhe 70,0 und das ist, was bewirkt, dass die simulierten Raum, weil die Zelle die Höhe ist eigentlich 80.0 aber meine contentView ist 70.0, die es gibt das Aussehen.
Möglicherweise gibt es andere Möglichkeiten der Bewältigung dieser sogar noch besser, aber es ist nur, wie ich gefunden, wie es zu tun. Ich hoffe, es kann jemand anderes helfen.
InformationsquelleAutor der Antwort Flea
Müssen Sie festlegen Rahmen um das Bild. Ungetestete code ist
InformationsquelleAutor der Antwort Chanok
Wenn Sie nicht den Abschnitt Header (oder Fußzeile) bereits haben, können Sie verwenden Sie zum hinzufügen von beliebigen Abstand um die Zellen der Tabelle. Anstatt einen Abschnitt mit n Zeilen, erstellen Sie eine Tabelle mit n Abschnitten mit einer Zeile je.
Umsetzung der
tableView:heightForHeaderInSection:
Methode zur Steuerung der Abstände.Möglicherweise möchten Sie auch zu implementieren
tableView:viewForHeaderInSection:
zu kontrollieren, was den Abstand aussieht.InformationsquelleAutor der Antwort Ferruccio
Ich denke, die meisten geradlinig Lösung, wenn Ihr gerade auf der Suche nach ein wenig Platz, und wahrscheinlich am wenigsten teuer wäre, einfach die Zelle, Grenze, Farbe, um Ihre Tabellen Hintergrundfarbe legen Sie dann die Randbreite zu bekommen gewünschten Ergebnis!
InformationsquelleAutor der Antwort Craig
Drei Ansätze, die ich mir denken kann:
Erstellen einer benutzerdefinierten Tabelle die Zelle, die aus legt die Sicht auf die gesamte Zelle in der Weise, dass Sie den Wunsch
Anstatt das Bild
Bild-Ansicht, löschen Sie die Untersichten von
das Bild anzuzeigen, erstellen Sie eine benutzerdefinierte
anzeigen, die fügt eine UIImageView für das Bild und eine andere Sichtweise, vielleicht eine einfache UIView, die den gewünschten Abstand ein, und fügen Sie es als Untersicht
Bild-Ansicht.
Macht das Sinn?
InformationsquelleAutor der Antwort csano
Ja, Sie können erhöhen oder verringern Sie den Abstand(padding) zwischen zwei Zellen durch anlegen einer Basis-Ansicht über Ansicht Inhalt in der Zelle.Klare Farbe für Inhalt, der anzeigen-hintergrund und passen Sie die Höhe der Basis-Ansicht, um Platz zu schaffen zwischen den Zellen.
InformationsquelleAutor der Antwort divya d
Beispiel in swift 3..
view-controller-code ist Balg wie
func numberOfSections(tableView: UITableView) -> Int {
zurück arraytable.zählen
}
Download full source auf Github : link
https://github.com/enamul95/CustomSectionTable
InformationsquelleAutor der Antwort Enamul Haque
Versuchen Sie suchen in
- (UIEdgeInsets)layoutMargins;
auf die Zelle
InformationsquelleAutor der Antwort drunknbass
Ich denke, das ist die sauberste Lösung:
InformationsquelleAutor der Antwort Aviel Gross
Dieser Artikel geholfen, es ist ziemlich viel, was die anderen Antworten, sagte aber, zusammenfassen und prägnant
https://medium.com/@andersongusmao/left-and-right-margins-on-uitableviewcell-595f0ba5f5e6
In der er nur wendet Sie auf linken und rechten Seiten aber die
UIEdgeInsetsMake
init ermöglicht das hinzufügen Polsterung für alle vier Punkte.Beachten Sie, dass UIEdgeInsets kann auch verwendet werden, um das gleiche zu erreichen.
Xcode 9.3/Swift 4
InformationsquelleAutor der Antwort Mauricio Chirino
Meiner situation war, dass ich custom-UIView zu viewForHeader in Abschnitt heightForHeader in Abschnitt zurück konstanter Höhe, sagen wir 40, Problem war, wenn keine Daten vorhanden alle header-Ansichten wurden berührt einander. also ich wollte den Raum zwischen dem Abschnitt, in fehlenden Daten, damit ich behoben, indem nur die änderung "tableview " Stil" Flugzeug "Gruppe".und es funktionierte für mich.
InformationsquelleAutor der Antwort Avijit Nagare
SWIFT 4
InformationsquelleAutor der Antwort drewster
Check out my Lösung auf GitHub mit Unterklassen von
UITableView
und mit runtime-features von Objective-C.Es ist im Grunde verwendet Apple eigenes Daten-Struktur
UITableViewRowData
dass ich auf der Suche eigenes runtime-headerUITableView
:https://github.com/JaviSoto/iOS10-Runtime-Headers/blob/master/Frameworks/UIKit.framework/UITableView.h
und hier ist gewünschten privaten Klasse, enthält alles, was Sie brauchen, um das layout Ihrer Zellen Abständen, aber Sie wollen, ohne es in den Zellen' Klassen:
https://github.com/JaviSoto/iOS10-Runtime-Headers/blob/master/Frameworks/UIKit.framework/UITableViewRowData.h
InformationsquelleAutor der Antwort Gleb Linnik
Basierend auf Husam Antwort: Mit der Zell-Ebene statt der Inhalte anzeigen ermöglicht das hinzufügen von einem Rahmen um die ganze Zelle und das Zubehör, wenn nötig. Diese Methode erfordert eine sorgfältige Anpassung der Beschränkungen für den unteren Rand der Zelle als auch jene Einsätze, ansonsten wird die Ansicht nicht richtig.
InformationsquelleAutor der Antwort dev_exo
Ich war im selben Boot. Zuerst habe ich versucht Umstellung auf Sektionen, aber in meinem Fall endete es als eher Kopfschmerzen, als ich ursprünglich dachte, so habe ich nach einer alternative. Zu halten die Verwendung von Zeilen (und nicht Durcheinander mit, wie Sie den Zugriff auf Ihre Modell-Daten), hier ist was für mich gearbeitet nur durch mit einer Maske:
Alles, was Sie zu tun haben, ist die Zelle ist die Höhe, die größer durch den gleichen Wert wie Ihre gewünschte
verticalPadding
und dann ändern Sie Ihre innere layout, so dass alle Ansichten, hatte Abstand zu den Rändern der Zelle haben, die gleiche Abstände erhöhtverticalPadding/2
. Kleine Nachteil: Sie bekommenverticalPadding/2
Polsterung sowohl auf der Ober-und Unterseite des tableView, aber Sie können schnell zu beheben, indemtableView.contentInset.bottom = -verticalPadding/2
undtableView.contentInset.top = -verticalPadding/2
. Hoffe, das hilft jemand!InformationsquelleAutor der Antwort Raimondo Previdi
Verwenden UITableViewDelegate,
heightForRowAtIndexPath
und Rendite die Höhe der Zeile.InformationsquelleAutor der Antwort MARK IOS Developer
fügen Sie eine innere Sicht auf die Zelle, fügen Sie dann Ihre eigene Ansichten.
InformationsquelleAutor der Antwort user3812138