use*_*203 2 ios swift ios8 ios8.1
如何更改iOS Swift中textColor的a label或cellon选项?
我希望背景不要改变.只有textColor,seperatorColor如果有的话.就像是:
label.highlightedTextColor = UIColor.whiteColor();
Run Code Online (Sandbox Code Playgroud)
我已经看到在一些颜色发生变化的应用中会发生这种情况.但我无法接近它.根据Apple Dev Reference:
使用标签实现一种文本按钮的子类在绘制按钮的按下状态时可以使用此属性中的值.只要highlight属性设置为true,此颜色就会自动应用于标签.
但是,标签编译得很好,并且不会在突出显示时改变颜色.按钮没有highlightedTextColor
我已经尝试过将其设置好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)
您可以设置颜色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()
}
Run Code Online (Sandbox Code Playgroud)