Swift 更改选择的文本颜色
Swift Change textColor on Selection
如何在 iOS Swift 中更改 label
或 cell
的 textColor
选择?
我希望背景不要改变。如果有的话,只有 textColor
和 seperatorColor
。类似于:
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
您可以在didSelectAtIndexPath
和didDeselectAtIndexPath
和cellForRowAtIndexPath
中设置颜色
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 中显示。
这是一个更清晰的快照:)
我已经尝试在 didSelectAtIndexPath
和 didDeselectAtIndexPath
中设置它,但颜色会随着延迟而改变。我不喜欢那样。
这就是我最终解决问题的方式:
我已经将我的 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
}
}
如何在 iOS Swift 中更改 label
或 cell
的 textColor
选择?
我希望背景不要改变。如果有的话,只有 textColor
和 seperatorColor
。类似于:
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
您可以在didSelectAtIndexPath
和didDeselectAtIndexPath
和cellForRowAtIndexPath
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 中显示。
这是一个更清晰的快照:)
我已经尝试在 didSelectAtIndexPath
和 didDeselectAtIndexPath
中设置它,但颜色会随着延迟而改变。我不喜欢那样。
这就是我最终解决问题的方式:
我已经将我的 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
}
}