2011-05-21 12 views
5

我試圖建立一個UITableView與分層這樣的元件:UITableView的瓦特/半透明部分集管和不同顏色的部分的背景

diagram

具體地,該表具有多個節,並且每個部分具有不同的背景顏色。要做到這一點,我通常會修改每個單元格。困難的部分是我希望節標題是半透明的。當我這樣做時,標題下的背景是表格視圖的背景色,當標題下沒有單元格時。我當然可以設置表視圖的背景顏色,但是每個標題下面的顏色都是相同的。

我該如何創建一個如圖所示的表格視圖?

更新:爲了清楚起見,我知道如何製作自定義標題視圖,並知道如何使用alpha屬性使其變爲半透明。問題在於什麼是在這個觀點下。我需要什麼是下面的部分的背景顏色,而不是表視圖的背景顏色。

回答

1

沒有確切的框架提供瞭解決方案,但我們可以使用backgroundView屬性。將其設置爲滾動視圖。此滾動視圖將包含節的背景視圖。將自己定義爲表視圖的contentSizecontentOffset的觀察者,並將滾動視圖的值與表視圖的值平行。使用rectForSection:方法獲取背景視圖的框架矩形,並使用適當的背景顏色設置爲滾動視圖創建子視圖。這應該在一定程度上起作用。

這種方法的問題是,當表視圖在邊緣上反彈時,滾動視圖將保持靜態。然後就是讓細胞與這種背景融合的情況。

+0

這是一個創造性的解決方案。我會玩弄看看我能做些什麼。謝謝! – leftspin 2011-05-22 18:34:55

1

在標題中使用UIImageView並使用(自定義)圖像。

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section   { 

     UIView * junkView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"headerImageBackground.png"]]; 
     junkView.alpha = .3; 
     [junkView autorelease]; 
     return junkView; 
} 
+0

不會將標題下的圖像視圖隱藏在其下面的單元格中?這會打破他們爲什麼半透明的原因......或者我錯過了什麼? – leftspin 2011-05-22 00:46:52

+0

啊,好吧,我玩了一下。如果你在標題中放置一個imageView,你可能需要使用它的.alpha屬性來獲得你想要的效果。看到編輯答案。 – Rayfleck 2011-05-22 01:07:27

+0

thumsup的命名! – 2015-09-04 14:59:33