我想将配件视图图标设置为白色,类似于图标在黑色TabBar中自动着色为白色,但对我来说,如何做到这一点并不是很明显。有没有人有这方面的经验?
答案 0 :(得分:77)
实际上正确的答案(尽管已经太晚了)是将你的单元格tintColor属性设置为白色UIColor
对象,如下所示:
UITableViewCell *cell = [UITableViewCell new]; // or other instantiation...
[cell setTintColor:[UIColor whiteColor]];
也可以完全对附件视图进行子类化,但问题是要求将单元附件按钮设置为白色,因此这应该是正确答案(至少对于iOS7而言)。
注意:已更正的属性名称,另请注意,它实际上不适用于指示器附件类型
答案 1 :(得分:10)
最好的办法是制作一张想放在那里的图像,然后将附件视图设置为该图像。这是Apple's Official Documentation for UITableViewCells。
答案 2 :(得分:6)
为表视图设置色调颜色可以解决它。
答案 3 :(得分:4)
UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coloredCheckmark.png"]];
cell.accessoryView = checkmark;`
享受
答案 4 :(得分:2)
Swift 3.0
两种方式:
UIImageView
作为tableview单元格的accessoryView
。如果您使用的是系统附件类型,例如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
}
})
}
})
答案 5 :(得分:2)
结合@ BharathRao,@ Hemang和@Kiattisak Anoochitarom想法的解决方案
这似乎是一个问题,特别是在iOS 13以上版本(更改tintColor
并没有影响)上,此页面在Apple开发者论坛上有2000多个视图
(https://forums.developer.apple.com/thread/121472)
我使用@BharathRao和@Hemang的想法的解决方案是将扩展名添加到UITableViewCell
中,例如:addDisclosureIndicator
使用扩展程序可使应用程序中的内容更加统一,特别是在有多个表和情节提要的情况下。
extension UITableViewCell {
func addDisclosureIndicator(){
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 15, height: 15))
/// 15 look great for me in iPhone and iPad
button.setImage( UIImage(named: "rightArrow"), for: .normal)
///You can download a chevron of your choice online
button.tintColor = UIColor(yourPreferredColor)
self.accessoryView = button
}
}
致电
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath)
cell.addDisclosureIndicator()
return cell
}
希望这会有所帮助。
答案 6 :(得分:0)
如果您在附件视图中使用自定义图片/按钮,则需要更改按钮的色调颜色,例如
keyedLookupList.Add(keySelector(item), item);
答案 7 :(得分:0)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "MyCustomCellIdentifier", for: indexPath) as? MyCustomCell else { return UITableViewCell() }
cell.tintColor = UIColor.white //Important
cell.accessoryType = (someCondition) ? .checkmark : .none
return cell
}
答案 8 :(得分:0)
最简单的方法是“根据图片自己创建配件”,然后使用模板颜色选项更改其颜色,或者仅使用具有所需颜色的图片。
答案 9 :(得分:-1)
在您的自定义单元格类
中override func awakeFromNib() {
super.awakeFromNib()
tintColor = UIColor.red
}
或
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellModel = addressCellModels[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier:cellModel.cellIdentifier, for: indexPath) as! AddressSelectionCell
cell.tintColor = UIColor.red
return cell
}