2012-04-08 5 views
8

Wie kann ich ein Bild für UITableViewController einstellen?UITableViewController Hintergrundbild

Ich habe viele Dinge verwendet, aber es hilft mir nicht, das Bild als Hintergrund davon

UIImageView* bgView = [[[UIImageView alloc] initWithImage: 
[UIImage imageNamed:@"Default.png"]] autorelease]; 

[tableView.backgroundView addSubview:bgView]; 

Und die

[[self view] setAutoresizesSubviews:NO]; 

UIView *backgroundView = [[UIView alloc] initWithFrame:self.view.frame]; 
backgroundView.backgroundColor = 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"Default.png"]]; 

self.tableView.backgroundView = backgroundView; 
self.tableView.backgroundColor = [UIColor clearColor]; 

[backgroundView release]; 

Und

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

Keine gesetzt gearbeitet für mich.

Antwort

24

setzt die background Füllmodus

[youTable setBackgroundView: 
    [[UIImageView alloc] initWithImage: 
    [UIImage imageNamed:@"bg.png"]]]; 

setzt die background Modus Fliese

[youTable setBackgroundColor: 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"bg.png"]]]; 
+0

Ich habe Test es in meinem Projekt und es funktioniert leider nicht – Youstanzr

+0

Mein Zweifel ist, dass Sie den Zellen eine Hintergrundfarbe zuweisen und diese den Hintergrund abdecken. – WhiteTiger

+0

meine Zellen sind Standard, ich habe die Farbe nicht geändert muss ich es ändern, um Farbe zu löschen oder der Standardwert ist klar? – Youstanzr

4
UIImage *image = [UIImage imageNamed:@"image.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 

UITableView *tableView = (UITableView*)tableViewController.view; 
tableView.backgroundView = imageView; 
[imageView release]; 
0

Sie den Tableviews Hintergrund Blick auf eine UIImageView Instanz (Eigenschaft backgroundView von UITableView) einstellen.

1

Wenn alle oben genannten Vorschläge nicht funktionieren, tun einfach so es (den Ansatz I immer Nutzung):

  1. Erstellen Sie eine UIViewController-Unterklasse.
  2. In viewDidLoad fügen Sie sowohl eine UIImageView als auch eine UITableView als Subviews hinzu.
  3. Konfigurieren Sie die TableView und implementieren Sie die Delegate-Methoden. Legen Sie das Hintergrundbild in der Bildansicht fest.

Ich denke, das Setzen der backgroundView für eine TableView kann grafische Fehler (wiederholte Bilder für jede Zelle) verursachen, deshalb verwende ich den hier beschriebenen Ansatz.

0

Der folgende Code funktioniert gut für mich. Können Sie folgenden Code versuchen: -

UIImageView *bgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; 
bgView.frame = self.view.frame; 
self.tableView.backgroundColor = [UIColor clearColor]; 
self.tableView.backgroundView = bgView; 
[bgView release]; 
0

i war auch die backgroundColor von UITableView gesetzt nicht in der Lage, weil es ein UITableViewController ist, mein Problem, das von diesem

gelöst
[self.tableView setBackgroundView: 
    [[UIImageView alloc] initWithImage: 
    [UIImage imageNamed:@"bg.png"]]]; 

Wie die „Whitetiger“ vorgeschlagen .

+0

du entwickelst für das iPad? iPad setBackgroundColor funktioniert nicht, Sie müssen unbedingt setBackgroundView verwenden – WhiteTiger

+0

Ich benutze SetBackgroundColor hier nicht, und ich arbeite für iphone – SAHIL

0

Dieser arbeitete für mich:

self.tableView.backgroundView = nil; 
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.png"]]; 

oder

[self.tableView setBackgroundView:nil]; 
[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.png"]]]; 
3

Das ist für mich gearbeitet:

tableView.backgroundView = 
    [[UIImageView alloc]initWithImage: 
    [[UIImage imageNamed:@"background.png"] stretchableImageWithLeftCapWidth:0.0 
              topCapHeight:5.0]]; 
+1

Gut, aber erklären Sie es für ein besseres Verständnis der Benutzer. – Shivaay