更改自定义文本字段背景颜色和文本颜色IOS Swift
Posted
技术标签:
【中文标题】更改自定义文本字段背景颜色和文本颜色IOS Swift【英文标题】:Change custom text field background color and text color IOS Swift 【发布时间】:2015-04-27 06:00:56 【问题描述】:我正在使用以下自定义文本字段类来更改文本字段的外观。现在,当用户开始编辑和结束编辑文本字段时,我需要更改文本字段的背景颜色、文本颜色和占位符颜色。怎么做,使用这个类。
import Foundation
import UIKit
class CustomTextField: UITextField
required init(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
//Border
self.layer.cornerRadius = 15.0;
self.layer.borderWidth = 1.5
self.layer.borderColor = UIColor.whiteColor().CGColor
//Background
self.backgroundColor = UIColor(white: 1, alpha: 0.0)
//Text
self.textColor = UIColor.whiteColor()
self.textAlignment = NSTextAlignment.Center
【问题讨论】:
【参考方案1】:在您的CustomTextField
类中,您可以添加一个属性观察者:
var change: Bool = false
didSet
textColor = change ? .yellow : .black
backgroundColor = change ? .blue : .white
在你的 ViewController 中:
func textFieldDidBeginEditing(textField: UITextField)
customTextField.change = true
func textFieldDidEndEditing(textField: UITextField)
customTextField.change = false
不要忘记在情节提要中或以编程方式设置文本字段的委托。
编辑: 缩短代码并为 Swift 3 更新
【讨论】:
在 backgroundColor 线上的白色之前缺少一个点。应该是: backgroundColor = change ? .blue : .white【参考方案2】:根据documentation添加self作为你需要的UIControl事件的目标
那里有 EditingDidBegin 等的控制事件。
类似这样的:
self.addTarget(self, action: "myFunc", forControlEvents: UIControlEvents.EditingDidBegin);
【讨论】:
这个方法帮助我做我想做的事。谢谢。【参考方案3】:选择文本字段->单击“身份检查器”图标->单击加号按钮“用户定义的运行时属性”->在“关键路径”字段中添加此文本“_placeholderLabel.textColor”->选择“类型” "color" 并设置值颜色。
【讨论】:
以上是关于更改自定义文本字段背景颜色和文本颜色IOS Swift的主要内容,如果未能解决你的问题,请参考以下文章
如何自定义单个选项卡? (更改背景颜色、指示器颜色和文本颜色)