2012-04-08 11 views
8

Jak ustawić obraz dla UITableViewController?UITableViewController Obraz w tle

Użyłem wielu rzeczy, ale to nie pomaga mi ustawić obraz jako tło

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

[tableView.backgroundView addSubview:bgView]; 

I to

[[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]; 

I

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

Żaden z nim pracował dla mnie.

Odpowiedz

24

ustawia tryb background wypełnić

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

ustawia dachówka trybu background

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

muszę przetestować go w moim projekcie i to niestety nie działa – Youstanzr

+0

mam wątpliwości, że kładziesz kolor tła na komórki, które pokrywają tło. – WhiteTiger

+0

moje komórki są domyślne, ale nie zmieniłem koloru, muszę je zmienić, aby wyczyścić kolor lub domyślnie jest jasne? – 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

Można ustawić widok tableviews tła do instancji UIImageView (mienia backgroundView z UITableView).

1

Jeżeli wszystkie wyżej wymienione propozycje nie działają, tylko zrobić to w ten sposób (podejście I zawsze zastosowanie):

  1. utworzyć podklasę UIViewController.
  2. W viewDidLoad dodaj zarówno UIImageView, jak i UITableView jako subviews.
  3. Skonfiguruj tabelę Wyświetl i zastosuj metody delegatów. Ustaw obraz tła w obrazieView.

Myślę, że ustawienie backgroundView dla tableView może powodować błędy graficzne (powtarzanie obrazów dla każdej komórki), dlatego używam podejścia opisanego tutaj.

0

Poniższy kod działa dobrze dla mnie. można spróbować następujący kod: -

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

Nie był też w stanie ustawić backgroundColor z UITableView bo to UITableViewController, mój problem rozwiązany tym

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

Jak sugeruje „WhiteTiger” .

+0

tworzysz dla iPada? iPad setBackgroundColor nie działa, musisz użyć koniecznie setBackgroundView – WhiteTiger

+0

Nie używam tutaj setBackgroundColor i pracuję dla iPhone – SAHIL

0

Ten pracował dla mnie:

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

lub

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

Ten pracował dla mnie:

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

Dobrze, ale wyjaśnij to dla lepszego zrozumienia użytkowników. – Shivaay

Powiązane problemy