【问题标题】:UITableView background with alpha color causing problem with UITableViewCell带有 alpha 颜色的 UITableView 背景导致 UITableViewCell 出现问题
【发布时间】:2011-04-24 09:36:23
【问题描述】:

我正在尝试用这种颜色获得一个半透明的 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;

那么,它为什么会有这种行为呢? 有人可以帮我吗?

【问题讨论】:

    标签: iphone uitableview background alpha


    【解决方案1】:

    我刚刚遇到了完全相同的问题。

    在 UITableViewCell 类上的 -(void)setBackgroundColor 中断后,似乎它正在被 UITableView 内部方法调用

    -(UITableViewCell*)tableView:cellForRowAtIndexPath:
    

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

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

    在您的委托中设置方法并在此处设置单元格的背景颜色。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        这可能是由单元格的缓存引起的。您是否尝试过禁用缓存?当然效率很低,但如果确实是 UITableViewCell 缓存的问题,它可能会帮助您找到解决此问题的方法。

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

        【讨论】:

        • 感谢您的回答,但即使禁用缓存也无法解决问题。
        猜你喜欢
        • 2019-03-13
        • 1970-01-01
        • 2010-10-03
        • 1970-01-01
        • 1970-01-01
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多