带有alpha颜色的UITableView背景导致UITableViewCell出现问题

时间:2010-10-12 15:32:18

标签: iphone uitableview background alpha

我正试图用这种颜色来获得半透明的uitableview

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

如果只有空单元格,那就没关系,但是当单元格内部有内容时,背景变得更加坚固。 就好像单元格本身具有相同的表格背景,因此透明度会成倍增加。

内部含有的细胞是半透明的,但有错误的alpha。

表背景设置正确

self.myTable.backgroundColor = bgcolor;

单元格的背景设置为清晰而不透明

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

那么,为什么会有这种行为呢? 有人能帮助我吗?

3 个答案:

答案 0 :(得分:2)

我解决了使用透明的UITableView并在其后面放置一个半透明的UIView。

答案 1 :(得分:0)

这可能是由于细胞的缓存造成的。您是否尝试过禁用缓存?它的效率非常低,但它可能会帮助您找到解决此问题的方法,如果确实是UITableViewCell缓存是问题。

您可以通过不使用tableView:cellForRowAtIndexPath:function中的“dequeueReusableCell”函数来禁用它。

答案 2 :(得分:0)

我刚刚遇到了同样的问题。

在UITableViewCell类上打破 - (void)setBackgroundColor之后,似乎它刚刚被UITableView内部方法调用

-(UITableViewCell*)tableView:cellForRowAtIndexPath:

你的代表的方法 另一种解决方法是重载

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
代理中的

方法,并在此处设置单元格的背景颜色。