添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
失恋的鞭炮  ·  关于 ...·  5 月前    · 
俊逸的围巾  ·  mysql 联表求和重复 ...·  1 年前    · 

1.0 文本输入框的创建

// 方式1
let textField = UITextField(frame: CGRect(x:10, y:60, width:200, height:30))
// 方式2
let textField = UITextField()
textField.frame = CGRect(x:20,y:30,width:100,height:30)
//设置边框样式为圆角矩形
textField.borderStyle = UITextBorderStyle.roundedRect
self.view.addSubview(textField)

** borderStyle的作用是设置边框样式,由枚举UITextBorderStyle控制: **

UITextBorderStyle属性描述
none无边框
line直角矩形边界线
bezel有阴影的边框
roundedRect圆角矩形边框

1.1文本框基本配置

// 文本输入框的提示文字
textField.placeholder = "请输入相关信息"
// 文字大小超过文本框长度时自动缩小字号,而不是隐藏显示省略号
textField.adjustsFontSizeToFitWidth=true  //当文字超出文本框宽度时,自动调整文字大小
textField.minimumFontSize=14  //最小可缩小的字号
// 水平/垂直对齐方式
/** 水平对齐 **/
textField.textAlignment = .right //水平右对齐
textField.textAlignment = .center //水平居中对齐
textField.textAlignment = .left //水平左对齐
/** 垂直对齐 **/
textField.contentVerticalAlignment = .top  //垂直向上对齐
textField.contentVerticalAlignment = .center  //垂直居中对齐
textField.contentVerticalAlignment = .bottom  //垂直向下对齐
// 背景图片设置
textField.borderStyle = .none //先要去除边框样式
textField.background = UIImage(named:"background1");
// 清除按钮(输入框内右侧小叉)
textField.clearButtonMode = .whileEditing  //编辑时出现清除按钮
textField.clearButtonMode = .unlessEditing  //编辑时不出现,编辑后才出现清除按钮
textField.clearButtonMode = .always  //一直显示清除按钮
// 设置文本框关联的键盘类型
textField.keyboardType = UIKeyboardType.numberPad
// 使文本框在界面打开时就获取焦点,并弹出输入键盘
textField.becomeFirstResponder()
// 使文本框失去焦点,并收回键盘
textField.resignFirstResponder()
// 设置键盘return键的样式
textField.returnKeyType = UIReturnKeyType.done //表示完成输入
textField.returnKeyType = UIReturnKeyType.go //表示完成输入,同时会跳到另一页
textField.returnKeyType = UIReturnKeyType.search //表示搜索
textField.returnKeyType = UIReturnKeyType.join //表示注册用户或添加数据
textField.returnKeyType = UIReturnKeyType.next //表示继续下一步
textField.returnKeyType = UIReturnKeyType.send //表示发送
// 输入/显示文本字体的颜色
textField.textColor = UIColor.cyan
// 文本框的字体大小设置
textField.font = UIFont.systemFont(ofSize: 14)
// 文本输入框的代理设置(遵守UITextFieldDelegate协议)
textField.delegate = self
// 输入框的背景颜色
text.backgroundColor = [UIColor whiteColor];  
 //设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉 ~~~

autocorrectionType的作用是设置时候开启文字自动修复功能,这个貌似只对英文有效,有兴趣的可以试一下,由UITextAutocorrectionType控制,有三个值:default、yes、no

returnType属性用来控制键盘返回键的样式(只能控制样式,不能修改方法,修改方法可以去代理中设置),通过枚举UIReturnKeyType控制:

UIReturnKeyType属性描述
default默认,标有Return
go标有Go的按钮
google标有Google的按钮
next标有Next的按钮,中文键盘是'下一步'
route标有Route的按钮
search标有Search的按钮,中文键盘是'搜索'
send标有Send的按钮,中文键盘是'发送'
yahoo标有Yahoo!的按钮
done标有Done的按钮,中文键盘是‘完成’
emergencyCall紧急呼叫按钮
continue标有Continue的按钮,中文键盘是‘继续’

clearButtonMode的作用是控制右侧清除按钮什么时候显示,由枚举 UITextFieldViewMode控制:

UITextFieldViewMode属性描述
never从不出现
whileEditing开始编辑时出现
unlessEditing除了编辑外都出现
always一直出现

keyboardType属性的作用是控制键盘的显示样式,由枚举UIKeyboardType控制:

UIKeyboardType属性描述
default默认键盘:支持所有字符
asciiCapable支持ASCII的默认键盘
numbersAndPunctuation标准电话键盘,支持+*#等符号
URLURL键盘,有.com按钮;只支持URL字符
numberPad数字键盘
phonePad电话键盘
namePhonePad电话键盘,也支持输入人名字
emailAddress用于输入电子邮件地址的键盘
asciiCapableNumberPad支持ASCII的数字键盘
decimalPad带‘.’的数字键盘
twitter功能齐全键盘,类似asciiCapable
webSearch带有面向url的附加的默认键盘类型

keyboardAppearance,定义的是键盘的样式,由枚举UIKeyboardAppearance控制:

UIKeyboardAppearance属性描述
default白色,这个字段是为了兼容以前的版本
dark黑色
light白色
alert黑色,这个字段是为了兼容以前的版本

** UITextField的浮动视图(Overlay view)**

例如微信中的添加银行卡页面,输入框右面的两个按钮,就是将按钮放在UITextField的rightView中。这样就能将UITextField和UIButton很好的结合在一起。

textField.leftViewMode = .always
textField.rightViewMode = .always
let leftButton = UIButton(type: .infoDark)
leftButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
textField.leftView = leftButton
let rightButton = UIButton(type: .contactAdd)
rightButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
textField.rightView = rightButton

1.2 代理方法

** 键盘return键的响应 **

import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()
        let textField = UITextField(frame: CGRect(x:10,y:160,width:200,height:30))
        //设置边框样式为圆角矩形
        textField.borderStyle = UITextBorderStyle.roundedRect
        textField.returnKeyType = UIReturnKeyType.done
        textField.delegate=self
        self.view.addSubview(textField)
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        //收起键盘
        textField.resignFirstResponder()
        //打印出文本框中的值
        print(textField.text)
        return true;

** 关闭键盘的两种方式 **

// 方法一 对单个的UITextField调用resignFirstResponder方法, 使其失去第一响应者
textfiled.resignFirstResponder()
// 方法二 对UIViewController,重写touchesBegan, 并调用endEditing方法
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    view.endEditing(true)

** 代理方法 **

//当输入改变时调用的方法
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
     print(string)
     return true
//textField已经进入编辑状态时调用的方法
func textFieldDidBeginEditing(_ textField: UITextField) {
     print("didBegin")
//结束编辑状态时调用的方法
func textFieldDidEndEditing(_ textField: UITextField) {
     print("didEnd")
//将要进入编辑状态时调用的方法
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
     print("shouldBegin")
     return true
//将要结束编辑状态时调用的方法
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
     print("shouldEnd")
     return true
//当点击删除按钮时触发的方法
func textFieldShouldClear(_ textField: UITextField) -> Bool {
     return false
//点击return键触发的方法
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
     textField.resignFirstResponder()
     return true
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
     view.endEditing(true)
复制代码
分类:
iOS