2012-04-08 207 views
8

如何爲UITableViewController設置圖片?UITableViewController背景圖片

我已經使用了很多事情,但它並不能幫助我將圖像設置爲背景

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

[tableView.backgroundView addSubview:bgView]; 

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

而且

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

沒有的,它的工作爲了我。

回答

24

設置background填充模式

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

設置background模式瓦

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

我有測試它在我的項目,它不幸的是不起作用 – Youstanzr 2012-04-08 21:03:31

+0

我的疑問是,你把一個背景顏色的細胞,這些覆蓋背景。 – WhiteTiger 2012-04-08 21:12:32

+0

我的細胞是默認我沒有改變顏色我必須改變它清除顏色或默認是清晰的? – Youstanzr 2012-04-08 21:20:16

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

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

可以設置tableviews背景以一個UIImageView實例(財產UITableViewbackgroundView)。

1

如果上述所有建議不工作,只是做這樣(的方式我總是使用):

  1. 創建一個UIViewController子類。
  2. 在viewDidLoad中添加UIImageView和UITableView作爲子視圖。
  3. 配置tableView並實現委託方法。在imageView中設置背景圖像。

我認爲爲tableView設置backgroundView會導致圖形錯誤(爲每個單元格重複圖像),所以這就是爲什麼我使用這裏描述的方法。

0

以下代碼適用於我。 你可以試試下面的代碼: -

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

我也不能設置UITableViewbackgroundColor因爲它是一個UITableViewController,我的問題通過這個

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

解決的問題如所建議的「孟加拉白虎」 。

+0

你正在爲iPad開發? iPad的setBackgroundColor不工作,你必須使用setBackgroundView – WhiteTiger 2013-01-16 22:39:29

+0

我沒有在這裏使用setBackgroundColor,而我正在爲iPhone – SAHIL 2013-01-17 04:10:27

0

這爲我工作:

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

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

這爲我工作:

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

好,但解釋它爲更好地瞭解用戶。 – Shivaay 2013-09-12 06:26:25