2010-10-12 23 views
1

我試圖得到一個半透明的UITableView引起的問題,這個顏色UITableView的背景阿爾法色搭配的UITableViewCell

[UIColor colorWithRed:(247.0/255.) green:(151.0/255.0) blue:(121.0/255.0) alpha:0.38]; 

如果只有空單元格這沒關係,但是當一個細胞具有裏面的內容,背景變得更加堅實。 就好像單元本身具有相同的表背景,以便透明度成倍增加。 你可以得到我的意思是看下面的截圖http://yfrog.com/nfsemitransparencyp

內部含有內容的單元格是半透明的,但帶有錯誤的字母。

表背景設置正確

self.myTable.backgroundColor = bgcolor; 

單元格的背景設置爲清除,而不是不透明

self.contentView.backgroundColor = [UIColor clearColor]; 
self.contentView.opaque = NO; 

那麼,爲什麼有這種現象? 有人可以幫我嗎?

回答

2

我解決了使用透明的UITableView並把一個半透明的UIView背後。

0

這可能是由於單元格的緩存引起的。你有沒有嘗試禁用緩存?這是非常低效的課程,但它可能會幫助您找到解決此問題的方法,如果確實存在UITableViewCell緩存問題。

您可以通過在tableView:cellForRowAtIndexPath:函數中不使用「dequeueReusableCell」函數來禁用它。

+0

感謝您的回答,但即使禁用緩存也沒有解決問題。 – pasine 2010-10-12 17:54:25

0

我剛剛遇到了完全相同的問題。

上破後 - 在UITableViewCell類,(無效)setBackgroundColor,它似乎是由UITableView的內部方法只是你委託的

-(UITableViewCell*)tableView:cellForRowAtIndexPath: 

方法之後被調用。
另一個解決辦法是在超載的委託

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 

方法,在這裏設置你的細胞的背景顏色。