如何设置UITableViewCell的配件颜色?

ian*_*675 29 iphone ios

我想将配件视图图标设置为白色,类似于图标在黑色TabBar中自动着色为白色,但对我来说,如何做到这一点并不是很明显.有任何人对此有经验吗?

bel*_*nta 82

实际上正确的答案(尽管它已经太晚了)是将你的单元格tintColor属性设置为白色UIColor对象,如下所示:

UITableViewCell *cell = [UITableViewCell new]; // or other instantiation...
[cell setTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

完全对子配件视图进行子类化也是可能的,但问题是要求将单元配件按钮设为白色,因此这应该是正确的答案(至少对于iOS7而言).

注意:更正了属性名称,另请注意,它实际上不适用于指示器附件类型

  • 关于不适用于指示器配件类型的说明是绊倒我的,好抓! (2认同)

Mat*_*att 11

您最好的选择是制作一个想要放入其中的图像,然后将附件视图设置为该图像.这是Apple的UITableViewCells官方文档.

  • 这是不必要的.@ believeInSanta的回答是正确的. (8认同)
  • 这实际上是在iOS7之前做到这一点的正确方法. (3认同)

Akh*_*K C 6

为表格视图设置色调颜色可以解决它.


小智 5

UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coloredCheckmark.png"]];
cell.accessoryView = checkmark;`
Run Code Online (Sandbox Code Playgroud)

享受


Wil*_* Hu 5

斯威夫特3.0

两种方式:

  1. 使用您自己的表格视图单元UIImageViewaccessoryView
  2. 如果您使用的是系统附件类型,例如Disclosure Indicator箭头图标 (>),您可以更改UIImageView tintColor来实现它。就像下面这样:

    cell?.subviews.forEach({
            if let btn = $0 as? UIButton {
                btn.subviews.forEach({
                    if let imageView = $0 as? UIImageView {
                        let image = imageView.image?.withRenderingMode(.alwaysTemplate)
                        imageView.image = image
                        imageView.tintColor = UIColor.red
                    }
                })
            }
        })
    
    Run Code Online (Sandbox Code Playgroud)