Swift 更改选择的文本颜色

Swift Change textColor on Selection

如何在 iOS Swift 中更改 labelcelltextColor 选择?

我希望背景不要改变。如果有的话,只有 textColorseperatorColor。类似于:

label.highlightedTextColor = UIColor.whiteColor();

我在一些应用程序中看到过这种情况,颜色会发生变化。但我无法靠近它。根据 Apple Dev Reference:

Subclasses that use labels to implement a type of text button can use the value in this property when drawing the pressed state for the button. This color is applied to the label automatically whenever the highlighted property is set to true.

但是,标签可以很好地编译并且不会在突出显示时改变颜色。按钮没有highlightedTextColor

您可以在didSelectAtIndexPathdidDeselectAtIndexPathcellForRowAtIndexPath

中设置颜色
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.cellForRowAtIndexPath(indexPath)?.textLabel?.textColor = UIColor.blackColor()
}

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.cellForRowAtIndexPath(indexPath)?.textLabel?.textColor = UIColor.redColor()
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    // Dequeue cell
    cell.textLabel?.textColor = UIColor.redColor()
}

如果您(use/not 使用)自定义单元格(如 xib),您可以 select 标签,然后从实用程序中,转到突出显示并将颜色更改为您想要的颜色在 selection 中显示。 这是一个更清晰的快照:)

我已经尝试在 didSelectAtIndexPathdidDeselectAtIndexPath 中设置它,但颜色会随着延迟而改变。我不喜欢那样。

这就是我最终解决问题的方式:

我已经将我的 UITableViewCell 分类并连接了所有 @IBOutlet。在 awakeFromNib() 中,我只是这样做了:

@IBOutlet weak var myLabel: UILabel!


override func awakeFromNib() {
    super.awakeFromNib()        

    self.myLabel.highlightedTextColor = .blackColor()

}

现在完美运行!

顺便说一句,这是我对堆栈溢出的第一个回答,请对我好点,呵呵

(我正在使用 Swift 2.0 和 Xcode 7.2.1)

cellForRowAt indexPath中你可以只添加这一行

cell.textLabel?.textColor = UIColor.blackColor()

在单元格本身的 setSelected 方法中,您可以覆盖它,然后提供您想要的任何颜色或突出显示状态:

override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(已选择,动画:动画)

    if isSelected {
        // your color or highlited here
    } else {
       // your colour or highlighted here
    }
}