Ich versuche, die Hintergrundfarbe von a UITableViewCell
auf transparent zu setzen. Aber nichts scheint zu funktionieren. Ich habe einige Bilder / Schaltflächen im Inneren tableViewCell
und möchte den weißen grouptableview
Hintergrund verschwinden lassen, um einen "schwebenden" Effekt für die Bilder und Schaltflächen zu erzielen (als wären sie nicht im Inneren tableview
).
Irgendeine Idee, wie dies erreicht werden könnte?
Dies wird tatsächlich in den Dokumenten von UITableViewCell beantwortet. Während Sie also Transparenz für Ihre Steuerelemente einrichten müssen , muss die tatsächliche Hintergrundfarbe der Zelle wie folgt eingestellt werden.
https://developer.apple.com/documentation/uikit/uitableviewcell
quelle
Beginnen Sie mit diesen Artikeln, um die Hintergrundfarbe korrekt einzurichten:
http://howtomakeiphoneapps.com/2009/03/how-to-add-a-nice-background-image-to-your-grouped-table-view/
http://pessoal.org/blog/2009/02/25/customizing-the-background-border-colors-of-a-uitableview/
Versuchen Sie dann alle folgenden Zeilen:
[[cell contentView] setBackgroundColor:[UIColor clearColor]]; [[cell backgroundView] setBackgroundColor:[UIColor clearColor]]; [cell setBackgroundColor:[UIColor clearColor]];
In einer UITableViewCell ist mehr als nur eine Ansicht versteckt. Dies sollte alle auf Ihrem Weg klar machen.
quelle
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { cell.backgroundColor = [UIColor clearColor]; cell.backgroundView.backgroundColor = [UIColor clearColor]; }
quelle
Ich habe eine einfache Lösung
Objective-c- Version:
cell.backgroundColor = [UIColor clearColor];
Schnelle Version:
cell.backgroundColor = UIColor.clearColor()
quelle
Standardmäßig ist der Hintergrund Ihrer UITableViewCell weiß. Dadurch
myCell.backgroundColor = [UIColor clearColor];
wird Ihre UITableViewCell transparent , aber Sie werden nicht das Gefühl , den Unterschied , weil die UITableView (die contener Ihrer UITableViewCell) auch haben einen weißen Hintergrund standardmäßig machen.Wenn Sie Ihren UIView-Hintergrund sehen möchten, müssen Sie Ihre Zelle und Ihren Tabellenhintergrund transparent machen:
myTableView.backgroundColor = [UIColor clearColor]; myTableCell.backgroundColor = [UIColor clearColor];
Martin Magakian
quelle
Ich hatte ein Problem, bei dem mein benutzerdefiniertes Hintergrundbild der Tabellenansichtszelle mit einem White-Label-Hintergrund überlagert wurde. Ich habe alles versucht und schließlich den Hintergrund so eingestellt, dass die Farbe in viewWillAppear klar ist.
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.tableView.backgroundColor = [UIColor clearColor]; // if this is not here, cell background image is covered with a white rectangle :S }
und im rowForCellAtIndexPath habe ich das Hintergrundbild festgelegt:
if(!cell) { cell = [[[UITableViewCell alloc] initWithFrame: ... UIImageView *cellBG = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellbg.jpg"]]; [cell setBackgroundView:cellBG]; [cellBG release]; }
quelle
Wenn Sie Storyboards verwenden, deaktivieren Sie "Opaque" für Ihren Prototyp UITableViewCells
quelle
Es gibt 3 Schritte:
quelle
Lösung für Swift 5.1
let cell = tableView.dequeueReusableCell(withIdentifier: "cellIdentifier", for: indexPath) cell.backgroundColor = UIColor.clear
quelle
Hier ist meine Lösung in Swift 4.1:
override func viewDidLoad() { super.viewDidLoad() tableView.backgroundView = UIImageView(image: "Image") } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { cell.backgroundColor = UIColor.clear {
quelle