Swift在选择时更改textColor

use*_*203 2 ios swift ios8 ios8.1

如何更改iOS Swift中textColor的a labelcellon选项?

我希望背景不要改变.只有textColor,seperatorColor如果有的话.就像是:

label.highlightedTextColor = UIColor.whiteColor();
Run Code Online (Sandbox Code Playgroud)

我已经看到在一些颜色发生变化的应用中会发生这种情况.但我无法接近它.根据Apple Dev Reference:

使用标签实现一种文本按钮的子类在绘制按钮的按下状态时可以使用此属性中的值.只要highlight属性设置为true,此颜色就会自动应用于标签.

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

Raw*_*wan 6

如果您(使用/不使用)自定义单元格(作为xib),您可以选择标签,并从实用程序转到突出显示并将颜色更改为您要在选择中显示的颜色.这是一个更清晰的快照:) 快照


Mar*_*tic 6

我已经尝试过将其设置好didSelectAtIndexPath,didDeselectAtIndexPath但颜色会随着延迟而改变.我不喜欢那样.

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

我已经将我的子类UITableViewCell连接起来并连接了所有的@IBOutlets.在awakeFromNib()我只是这样做:

@IBOutlet weak var myLabel: UILabel!


override func awakeFromNib() {
    super.awakeFromNib()        

    self.myLabel.highlightedTextColor = .blackColor()

}
Run Code Online (Sandbox Code Playgroud)

现在完美运作!

顺便说一下这是我关于堆栈溢出的第一个答案,请对我好.呵呵

(我使用的是Swift 2.0和Xcode 7.2.1)


rak*_*hbs 5

您可以设置颜色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()
}
Run Code Online (Sandbox Code Playgroud)