更改accessoryType Swift的颜色

时间:2015-04-04 21:16:08

标签: ios uitableview swift xcode6 accessorytype

我想将细胞accessoryType的颜色从蓝色更改为白色。 textColor已设置为白色。 你们有人知道怎么做吗?

我的代码:

cell!.accessoryType = UITableViewCellAccessoryType.Checkmark

10 个答案:

答案 0 :(得分:26)

您可以将UITableViewCell tintColor属性设置为所需的颜色:

[cell setTintColor:[UIColor whiteColor]];

答案 1 :(得分:12)

斯威夫特:

cell.tintColor = UIColor.whiteColor()

Swift 3.0

cell.tintColor = UIColor.white

答案 2 :(得分:4)

“如何更改 .disclosureIndicator 指示器类型的颜色”。经过大量研究后,我注意到discoveryIndi​​cator的图像不是Image而是backgroundImage。我找到了这样的解决方案:

enter image description here

import UIKit

class CustomCell: UITableViewCell {


fileprivate func commonInit() {

}

open override func layoutSubviews() {
    super.layoutSubviews()

    if let indicatorButton = allSubviews.compactMap({ $0 as? UIButton }).last {
        let image = indicatorButton.backgroundImage(for: .normal)?.withRenderingMode(.alwaysTemplate)
        indicatorButton.setBackgroundImage(image, for: .normal)
        indicatorButton.tintColor = .red
     }
  }
}

extension UIView {
   var allSubviews: [UIView] {
      return subviews.flatMap { [$0] + $0.allSubviews }
   }
}

enter image description here

答案 3 :(得分:2)

我认为,最好的方法是通过以下方式将附件设置为图像:

let image = UIImage(named: "some image.png")
cell.accessoryView = image

答案 4 :(得分:2)

Swift 3.1:

cell.backgroundColor = UIColor.yellow // the accessoryType background 
cell.tintColor = UIColor.black // the accessoryType tint color.

答案 5 :(得分:1)

您还可以从故事板中更改单元格的色调(假设您使用的是xib文件)

答案 6 :(得分:1)

我的情况我需要更改CustomCell的contentView颜色。

当你覆盖方法时,它很容易制作:

override func setHighlighted(highlighted: Bool, animated: Bool) {}

override func setSelected(selected: Bool, animated: Bool) {}

但是当我添加到我的customCell时:

cell?.accessoryType = .DisclosureIndicator

DisclosureIndicator下的视图没有更改颜色时,我遇到了问题。它看起来像是:enter image description here

所以我查看subviews的{​​{1}},发现CustomCell是一个按钮。如果更改此按钮的背景颜色,请使用此enter image description here

所以我尝试更改此按钮的DisclosureIndicator的背景颜色。它的工作很棒。

superview setHighlighted func的完整代码:

myCustomCell

答案 7 :(得分:1)

Swift 5我正在改善通福答案

let chevronImageView = UIImageView(image: UIImage(named: "chevron-right"))
cell.accessoryView = chevronImageView

答案 8 :(得分:0)

不适用于.disclosureIndicator吗?

如果有人在这里寻找“如何为.disclosureIndicator指示器类型更改颜色”。

答案是您不能。但是:

有一种方法。应用自定义图片:

let chevronImageView = UIImageView(image: disclosureIndicatorImage"))
accessoryView = chevronImageView

其他支持链接:

可以从here下载图像。 如何更改图像的颜色是here

答案 9 :(得分:-2)

cell.contentView.backgroundColor = .grey

cell.backgroundColor = .grey