【问题标题】:Change background color of UITableViewCell when reordering in editing mode在编辑模式下重新排序时更改 UITableViewCell 的背景颜色
【发布时间】:2014-01-10 09:39:26
【问题描述】:

我正在开发一个包含 UITableView 的应用程序。用户唯一需要做的就是重新排序 UITableView 的内容。在编辑模式下,表格视图单元格的背景颜色变为透明。有什么方法可以在重新排序时保持 tableview 单元格的原始背景颜色?

解决方案:

经过几次额外的搜索,我找到了(简单的)解决方案。 通过在 willDisplayCell 方法中添加 cell.backgroundView.backgroundcolor ,问题就解决了。

【问题讨论】:

    标签: ios objective-c uitableview ios7


    【解决方案1】:

    iOS UI 框架会使您的单元格透明的情况有多种。其中一个是高亮/选中状态,另一个是重新排序的情况。

    重要的是要了解系统是如何做到的。系统隐藏单元格背景(cell.backgroundViewcell.selectedBackgroundView),并且对于单元格中的每个视图,它会将backgroundColor 设置为透明色。因此,不能使用backgroundColor 来保持单元格不透明。

    最简单的解决方案是添加一个简单的UIViewdrawRect:,它将用颜色填充单元格。

    @interface MyColoredView : UIView
    
    @property (nonatomic, strong, readwrite) UIColor *color;
    
    @end
    
    @implementation MyColoredView
    
    - (void)setColor:(UIColor *)color {
        _color = color;
    
        [self setNeedsDisplay];
    }
    
    - (void)drawRect:(CGRect)rect {
        [self.color set];
    
        CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), true);
        CGContextFillRect(UIGraphicsGetCurrentContext(), self.bounds);
    }
    
    @end
    

    将其添加到您的单元格(可能不是contentView,而是直接添加到单元格)并设置其框架以匹配单元格的边界。

    【讨论】:

    • 感谢您的回复!我已经尝试过您的解决方案,tableviewcells 已经从 UIView 初始化。但是当我将这些方法添加到 UIView 时没有任何改变。当我重新排序它们时它们仍然是透明的。
    • 如果操作正确,它们就不会透明。请出示您的代码。
    • 我认为这是因为颜色是在视图控制器中声明并传递给单元格的 UIView 的。稍后我会尝试发布我的代码。
    • 很好地解释了重新排序单元格时发生的事情!实现相同结果的另一种方法是覆盖 setBackgroundColor 并改为调用 [super setBackgroundColor:[UIColor whiteColor]]
    【解决方案2】:

    假设你的单元格颜色是红色

     [cell setBackgroundColor:[UIColor redColor]];
    

    然后将tableview背景设置为相同。

     tableView.backgroundColor = [UIColor redColor];
    

    【讨论】:

    • 为了让我的问题更准确一点,每个 tableviewcell 都有单独的颜色(如 clear 应用程序)。所以它真的是我想改变的 Tableviewcell 背景颜色。也因为它变成透明的,当你在另一个单元格上移动时,你可以通过移动的单元格看到它下面的单元格。
    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 2015-07-06
    • 1970-01-01
    • 2010-09-18
    • 2012-05-02
    • 1970-01-01
    • 2015-11-01
    • 2016-12-26
    相关资源
    最近更新 更多