Swift自定义控件--输入框
来源:互联网 发布:淘宝儿童服装店哪个好 编辑:程序博客网 时间:2024/05/16 07:51
在开发安卓项目的时候经常对于常用的功能进行封装成控件来使用,一个是减少代码量,另一个看起来简洁,而对于苹果开发也喜欢封装成控件,然后再storyboard里面拖拽,对于IOS开发自己属于菜鸟级别所以代码质量不是很高,如果那里有问题,请指出,这里记录一个是备忘另一个希望多多交流。
这篇是自定义输入框,输入框在项目中经常用到,最常见的比如左边是label右边是textfield,效果图如下:
代码如下
//// TextFieldValidator.swift// CustomWidget//// Created by System Administrator on 15/3/21.// Copyright (c) 2015年 jwzhangjie. All rights reserved.//import UIKitclass TextFieldValidator : UIView{ var txtFlag:UILabel! var txtFieldFlag:UITextField! var spacing:CGFloat? var delegate:UITextFieldDelegate? required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) txtFlag = UILabel() txtFieldFlag = UITextField() } func initWithFrame(labelText:NSString, text:NSString, placeholder:NSString, spacing:CGFloat){ var width:CGFloat = frame.size.width; var height:CGFloat = frame.size.height; txtFlag = UILabel(frame: CGRectMake(0, 0, width / 3, height)) txtFlag.backgroundColor = UIColor.clearColor() txtFlag.textAlignment = NSTextAlignment.Left self.spacing = spacing self.addSubview(txtFlag) txtFieldFlag = UITextField(frame: CGRectMake(width / 3 + spacing, 0, width-width/3 + spacing, height)) txtFieldFlag.borderStyle = UITextBorderStyle.RoundedRect txtFieldFlag.clearButtonMode = UITextFieldViewMode.Always self.addSubview(txtFieldFlag) setText(text) setLabelText(labelText) txtFieldFlag.placeholder = placeholder } func initWithFrame(labelText:NSString, placeholder:NSString, spacing:CGFloat){ return initWithFrame(labelText, text: "", placeholder: placeholder, spacing: spacing) } func initWithFrame(labelText:NSString, placeholder:NSString){ return initWithFrame(labelText, text: "", placeholder: placeholder, spacing: 0) } func setDelegate(delegate:UITextFieldDelegate){ self.delegate = delegate txtFieldFlag.delegate = delegate } func setLeftTextFlag(text:NSString){ txtFlag.text = text } func setLabelText(text:NSString){ txtFlag.text = text } func setText(text:NSString){ txtFieldFlag.text = text } func getText()->NSString{ return txtFieldFlag.text; } func setTxtFlagAlignment(option:NSTextAlignment){ txtFlag.textAlignment = option } func setSpacing(spacing:CGFloat){ self.spacing = spacing; txtFieldFlag.frame=CGRectMake(txtFlag.frame.size.width+spacing, 0, self.frame.size.width-txtFlag.frame.size.width-spacing, self.frame.size.height); } func setSecureTextEntry(option:Bool){ txtFieldFlag.secureTextEntry = option } func setClearButtonMode(mode:UITextFieldViewMode){ txtFieldFlag.clearButtonMode = mode } func setReturnKey(type:UIReturnKeyType){ txtFieldFlag.returnKeyType = type }}
//// ViewController.swift// CustomWidget//// Created by System Administrator on 15/3/21.// Copyright (c) 2015年 jwzhangjie. All rights reserved.//import UIKitclass ViewController: UIViewController { @IBOutlet weak var userName: TextFieldValidator! @IBOutlet weak var userPasswd: TextFieldValidator! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. userName.initWithFrame("用户名", placeholder: "请输入用户名") userName.setReturnKey(UIReturnKeyType.Next) userPasswd.initWithFrame("密码", placeholder: "请输入用户密码") userPasswd.setSecureTextEntry(true) userPasswd.setReturnKey(UIReturnKeyType.Done) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}
注意点:
如何将自定义控件加入storyboard?
由于自定义控件不是系统控件,所以能直接在Xcode中拖拽,首先需要拖拽自定义的父类,比如这里继承的是UIView,所以从Xcode中拖拽一个UIView到storyboard中,然后将UIView的class设置为自定义控件名称
查看类中的所有方法的快捷键?
在空白处,点击esc会显示出该类的所有方法
1 0
- Swift自定义控件--输入框
- 自定义控件-金额输入框
- swift 自定义控件三部曲
- swift 自定义控件
- swift可视化自定义控件
- 一个自定义的数字输入框控件
- C# 编写自定义 IP 输入框控件
- Android-自定义控件之IP输入框
- swift 自定义输入框frame、placeholder frame的textfield
- Swift UITextField(单行文本输入控件)
- Andriid自定义输入控件EditText
- 自定义控件-带删除按钮的输入框
- 用Silverlight自定义控件代替ActiveX安全密码输入框
- Android开发之自定义控件-模仿QQ输入框
- 自定义控件 实现文本框输入模仿下拉框选择功能
- 【Android自定义控件】密码输入框+数字键盘的实现
- 【Android自定义控件】选择输入框的实现
- [自定义控件]带有删除按钮的输入框
- poj 1200 Crazy Search(字符串hash)
- html基础篇--4
- CKRule BRMS-决策表使用说明
- Java_语法基础_“$”惹的祸
- java导出excel
- Swift自定义控件--输入框
- java语言IO流之FileReader
- HDU 3080 The plan of city rebuild
- Java socket多线程
- 程序员修炼之路-(0)前言:在路上, 再上路
- java语言编程之FileWriter
- Java导出PDF文件
- 接口
- Android SDK 国内镜像