it-swarm.com.de

UITableView-Hintergrundbild

Ich versuche, ein PNG-Bild als Hintergrund meines Tableview einzurichten. Mit dem folgenden Code geht es allen gut! Aber nur auf dem iPhone Simulator. Wenn ich versuche, die Anwendung auf einem iPhone-Gerät auszuführen, bleibt der Hintergrund von tableview weiß (oder klar). Ist das eine Sache, die etwas mit der Art und Weise zu tun hat, als ich versuchte, die Hintergrundfarbe einzustellen. Ich habe bis jetzt viele Möglichkeiten ausprobiert, aber alle haben das gleiche Problem.

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];

Danke im Voraus!

58
user730153

Bitte benutzen Sie folgenden Code.

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
[tempImageView release];

Vielen Dank,

170
Ravin

Ich denke, dieser Ansatz ist sauberer:

UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
17

Einfache Swift-Version wird sein

let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
9
Avijit Nagare

Ist Ihr Bild tatsächlich TableViewBackground.PNG (beachten Sie die Großbuchstaben)? Sie müssen die Groß-/Kleinschreibung auf einem iOS-Gerät genau übereinstimmen, während sie im Simulator nicht exakt übereinstimmt.

7
Nick Forge
 UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
 [tempImageView release];

Das funktioniert perfekt. Danke an Ravin von Jona

5
Jona

Eine IBDesignable-Tableview-Unterklasse, mit der Sie ein Bild aus dem Interface Builder anhängen können

import UIKit

@IBDesignable
class DesignableTableView: UITableView {

    @IBInspectable var backgroundImage: UIImage? {
        didSet {
            if let image = backgroundImage {
                let backgroundImage = UIImageView(image: image)
                backgroundImage.contentMode = UIViewContentMode.ScaleToFill 
                backgroundImage.clipsToBounds = false
                self.backgroundView = backgroundImage
            }
        }
    }

}
3
Sig
[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Apple.png"]] ];
2
anand madhav

Dies funktioniert perfekt, auch wenn Sie ein Musterbild für Ihren Hintergrund verwenden möchten.

UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
1
matsr

Ein bisschen spät, aber vielleicht für alle, die nach einer Lösung suchen. Ich könnte diese Arbeit mit dem folgenden Code in der viewDidLoad-Methode der UITableViewController erhalten:

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];

oder nur mit einer Hintergrundfarbe:

self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
self.tableView.backgroundColor = [UIColor clearColor];

Ich habe eine Weile gebraucht, um das herauszufinden, aber jetzt funktioniert es wie ein Zauber.

0
JFS

Ziel-c-Version:

cell.backgroundColor = [UIColor clearColor];

Siehe auch: So erstellen Sie eine UITableViewCell mit transparentem Hintergrund

0
Leon Wang