2013-05-27 48 views
0

我有很多的UITableViewControllers,我想有自定義背景色,而我不希望將它複製到所有TVC:動態改變質量UITableView背景,但如何?

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

任何想法,請?

回答

-1

你可以用你自己的類子類化UITableViewController,改變這個類的backgroundcolor並從這個類派生UITableViewControllers。

+0

我試過了,但沒有變化。我把代碼放入init方法「//自定義初始化」,並在viewdidload中嘗試,我也搜索了幾次,但沒有運氣。 – Laszlo

+0

最後但並非最不重要的子類現在完美。 – Laszlo

0

看看UIAppearance協議。您可以指定表視圖的背景色中所含特定視圖控制器類全局或當:

UITableView *appearance = [UITableView appearanceWhenContainedIn:[MyTableViewController Class], [MyOtherTableViewController class], nil]; 
appearance.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundPattern.png"]]; 

你可以把這個在您的應用程序委託的application:didFinishLaunchingWithOptions:方法。

此外,viewtableView屬性UITableViewController指向相同的東西,所以你不需要同時設置。

編輯

嘗試看標題Customizing the Appearance of UIKit Controls 2012年的WWDC視頻。他們演示UIAppearance協議以及您可能會覺得有用的主題設計模式。

+0

我有超過十個TableViewController和一些帶Tableviews的UIViewControllers。而且還會有更多,我不認爲這是解決這個問題的最好和最有活力的方式。 – Laszlo

+0

你所描述的問題正是外觀協議的目標,所以我不明白你的反對意見。例如,如果所有的表格都具有相同的背景顏色,則需要一行代碼。它不是靜態的,所以我沒有得到「動態」的評論。看看'UIAppearance'協議文檔,也許它會變得更加清晰。 –

+0

在我的答案中添加了WWDC視頻鏈接。看一看。 –