セルのアクセサリタイプの色を青から白に変更したい。 textColorはすでに白に設定されています。あなた方の誰かがこれを行う方法を知っていますか?
私のコード:
cell!.accessoryType = UITableViewCellAccessoryType.Checkmark
UITableViewCell tintColorプロパティを目的の色に設定できます。
[cell setTintColor:[UIColor whiteColor]];
迅速:
cell.tintColor = UIColor.whiteColor()
Swift 3.0
cell.tintColor = UIColor.white
Swift 3.1:
cell.backgroundColor = UIColor.yellow // the accessoryType background
cell.tintColor = UIColor.black // the accessoryType tint color.
そのための最良の方法は、アクセサリを次のようにイメージすることです。
let image = UIImage(named: "some image.png")
cell.accessoryView = image
ストーリーボードからセルのティントカラーを変更することもできます(xibファイルを使用している場合)。
私の場合、CustomCellのcontentViewの色を変更する必要があります。
メソッドをオーバーライドすると、簡単に作成できます。
override func setHighlighted(highlighted: Bool, animated: Bool) {}
そして:
override func setSelected(selected: Bool, animated: Bool) {}
しかし、私が私のcustomCellに追加すると:
cell?.accessoryType = .DisclosureIndicator
DisclosureIndicator
の下のビューの色が変わらないときに問題が発生しました。そのように見えます:
subviews
のCustomCell
を見ると、DisclosureIndicator
がボタンであることがわかります。このボタンの背景色を変更する場合、これがあります
そこで、このボタンのsuperview
の背景色を変更してみます。そしてその仕事は素晴らしい。
myCustomCell
setHighlighted funcの完全なコード:
override func setHighlighted(highlighted: Bool, animated: Bool) {
if(highlighted){
viewContent.view.backgroundColor = Constants.Colors.selectedBackground
for item in self.subviews {
if ((item as? UIButton) != nil) {
item.superview?.backgroundColor = Constants.Colors.selectedBackground
}
}
} else {
viewContent.view.backgroundColor = Constants.Colors.normalCellBackground
for item in self.subviews {
if ((item as? UIButton) != nil) {
item.superview?.backgroundColor = Constants.Colors.normalCellBackground
}
}
}
}