Wie der Titel sagt, habe ich ein Problem mit einer Reihe von transparenten Pixeln, die ich nicht loswerden kann.
Ich habe ein Bild angehängt, da es 1000 Worte wert ist.
Das Problem ist nicht für die Abschnittsfußzeile vorhanden (wo ich auch eine benutzerdefinierte Ansicht verwende). Ich habe überprüft und überprüft, dass ich die richtige Größe für die Höhe des Abschnitts zurückgeben.
Irgendwelche Ideen?
BEARBEITEN:
Ich habe ein Testprojekt hinzugefügt, damit Sie herumspielen können. Die violette Farbe repräsentiert die Hintergrundfarbe. Die weißen Rechtecke sind die Kopf- / Fußzeile und die hellgrauen sind einige Dummy-Zellen. Das Problem ist im Projekt deutlich sichtbar.
TransparentRowBug XCode-Projekt
Sie werden auch sehen, dass ich viele klare Farben verwende. Leider ist es keine praktikable Lösung für mich, die Farben zu ändern, um das Problem zu verbergen.
Probieren Sie es (oder mehr) aus!
Vielen Dank!
EDIT2:
Nach weiteren Untersuchungen kam ich zu dem Schluss, dass die Pixelzeile vom tableview separator kommt. Im Testprojekt setze ich die Trennzeichenfarbe auf clearColor. Wenn ich dies zu einer anderen Farbe ändere, bekomme ich genau diese Pixelreihe in der neuen Farbe. Obwohl ich den Trennungsstil auf "none" gesetzt habe, scheint er keine Auswirkungen auf gruppierte Tabellen zu haben.
Ich habe das nach fast zwei Testtagen (und Haarausfall) endlich herausgefunden.
Wie ich oben in meinem Kommentar gesagt habe, funktioniert die Rückgabe einer kleineren Höhe in der heightForHeader-Methode nicht. Damit es funktioniert, müssen Sie die gewünschte Header-Ansicht verwenden, sie in eine Dummy- / Containeransicht mit der exakt gleichen Größe einfügen und dann diesen Container der Tabellenansicht als Überschrift geben.
Dann, wenn Sie eine kleinere Größe für die Kopfzeile zurückgeben, schafft es es magisch (und es ist wirklich magisch für mich), diese lästige Reihe von Pixeln zu überlappen.
Ich bin übrigens zu dem Schluss gekommen, dass die Pixelzeile auf die Zellentrennlinie zurückzuführen ist.
Wenn jemand interessiert ist, kann ich das Arbeitstestprojekt erneut hochladen.
Ich bin mir nicht sicher, ob Sie das fragen, aber ich habe vor zwei Tagen herausgefunden, dass Sie den Standardbereich zwischen den Abschnitten in einer Tabellenansicht reduzieren können ...
Indem heightForHeader
einen negativen Wert zurückgibt! Schmutzig, aber ... funktioniert.
Ich hoffe, dass Hilfe ...
Ich bin auch auf dieses Problem gestoßen. Ich hatte eine UITableView mit gruppierten Abschnitten. Zwischen dem ersten Abschnittskopf und der ersten Zelle gab es eine 1-Punkt-Lücke (2 Retina-Pixel), wo der Hintergrund durchblutete.
Wenn die Farbe der Hintergrundfarbe einheitlich ist, können Sie backgroundColor von UITableView zuweisen, um diese Lücke zu verbergen.
In meinem Fall wurde die backgroundColor / backgroundView für einen nicht-scrolling gemusterten Hintergrund auf anderen Zellen verwendet. Die von mluisbrown vorgeschlagene Lösung funktioniert perfekt. Ich möchte diese Lösung noch einmal betonen:
%Vor%Fügen Sie ein Trennzeichen zwischen der Kopfzeilenansicht und der ersten Zeile hinzu: - Fügen Sie für die Kopfzeile in der Delegate-Methode eine Unteransicht hinzu. self.separator // @ property (nichtatomisch, stark) UIImageView * separator;
%Vor%Gruppierte UITableView nimmt Header, Zelle und Fußzeile als eine einzelne Entität. Die weiße transparente Ansicht ist also die Fußzeilenansicht, die durch Verringern der Fußzeilenhöhe wie im Screenshot dargestellt behandelt werden kann. Ich hoffe, es funktioniert Viel Glück:)
Tags und Links iphone uitableview transparent uikit