2009-09-03 91 views

回答

3

在另一個項目(使用2.2.1開發)中,我通過將UITableView'的背景不透明度設置爲0%,然後使用Interface Builder將UIImageView分層。這使我有一個固定的背景,無論表狀態如何。您也可以將UITableView的背景設置爲圖像,但隨後背景會與表格一起滾動。 (我目前沒有這個代碼,但是我在Apple開發者論壇上看到了這個提示)。

請注意,這可能會導致一些性能問題。蘋果公司不鼓勵儘可能使用透明度,因爲3GS之前的型號上的GPU不是特別強壯。

3

您可以使用像這樣的+[UIColor colorWithPatternImage:(UIImage)]方法:

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]]; 
2
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"SortByCategory_320x480.png"]]; 

self.tableView.separatorColor = [UIColor clearColor]; 

self.tableView.backgroundColor = [UIColor clearColor]; 

希望這會有所幫助。它不會在單元格後面顯示可怕的半透明背景,特別是在分組UITableView的情況下。

+4

訪問parentViewController.view是一個可怕的想法 - 你不知道它有什麼樣的靠山,這是一個非常糟糕的侵犯的封裝。即使它現在有效,下一次iOS更新可能會完全破壞您的代碼。不要這樣做。 – 2011-03-29 12:31:10

24

下面是我工作(且相當簡單,一旦我想通了;)

1)添加視圖在您的應用程序委託,並使其成爲窗口的子視圖:

UIView *bgView = [[UIView alloc]initWithFrame:window.frame]; 

bgView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"screenBG.png"]]; 
[window addSubview:bgView]; 
[bgView release]; 

2 )在每個視圖控制器.m文件,viewDidLoad中下,該特定視圖中的透明(的設定背景色,從而上面創建的其他bgView將顯示通過):

self.view.backgroundColor = [UIColor clearColor]; 

而在我的情況下,在v在第2步中,控制器是一個tableviewcontroller。看起來很棒。

而且順便說一句,在做每個視圖控制器下面沒有工作:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"screenBG.png"]]; 

所以,按照上述步驟1和2。

希望這有助於出來, TBONE

+0

我喜歡這個把戲。 – winnicki 2012-05-12 03:47:43

+2

在應用程序委託中,您還可以更輕鬆地執行:self.window。backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@「bg.png」]]; – 2012-10-14 18:39:03

+0

我同意Gil Margolin的說法......將窗口的backgroundColor設置爲圖像比較容易。有一個警告 - 你必須手動加載retina/iphone5的正確圖像,這會讓事情變得複雜一點。 – 2013-02-10 18:44:00

9

試試這個

- (void) viewDidLoad { 
    [super viewDidLoad]; 

    self.tableView.backgroundColor = [UIColor clearColor]; 
    self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"wallpaper.png"]]; 
    self.tableView.opaque = NO; 
} 
+0

您也可以在表格視圖後面添加圖像視圖,而不是設置背景顏色,這樣可以避免使用圖案圖像。 – TigerCoding 2011-11-30 10:00:36