更改自定义文本字段背景颜色和文本颜色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的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义单个选项卡? (更改背景颜色、指示器颜色和文本颜色)

如何更改 UITableHeaderView 的背景颜色和文本颜色

在网格面板中动态更改 extjs 4 网格文本框背景颜色

如何在 Cordova iOS 项目中更改文本字段光标颜色

如何在Cordova iOS项目中更改文本字段光标颜色

如何在 iOS 7 上更改状态栏背景颜色和文本颜色?