2010-10-12 22 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 

方法,在这里设置你的细胞的背景颜色。