IOS开发-UI学习-UITextField的各种属性设置

本文详细介绍了UITextField控件的使用方法,包括初始化、边框样式、背景设置、字体颜色、清除按钮、键盘样式、自动调整等属性设置,以及重写绘制行为和委托方法的实现。

UITextField是IOS中非常常用的一个控件,用来接收用户输入信息,完成应用和用户的交互。它的主要属性设置如下:

 

  1 //初始化textfield并设置位置及大小
  2   UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];
  3  
  4 //设置边框样式,只有设置了才会显示边框样式  
  5   text.borderStyle = UITextBorderStyleRoundedRect;
  6 
  7   typedef enum {
  8     UITextBorderStyleNone, 
  9     UITextBorderStyleLine,
 10     UITextBorderStyleBezel,
 11     UITextBorderStyleRoundedRect  
 12   } UITextBorderStyle;
 13   
 14 //设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉  
 15    text.backgroundColor = [UIColor whiteColor];
 16  
 17 //设置背景
 18   text.background = [UIImage imageNamed:@"dd.png"];
 19  
 20 //设置背景 
 21   text.disabledBackground = [UIImage imageNamed:@"cc.png"];
 22 
 23 //当输入框没有内容时,水印提示 提示内容为password
 24   text.placeholder = @"password";
 25  
 26 //设置输入框内容的字体样式和大小
 27   text.font = [UIFont fontWithName:@"Arial" size:20.0f];
 28  
 29 //设置字体颜色
 30   text.textColor = [UIColor redColor];
 31  
 32 //输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容
 33   text.clearButtonMode = UITextFieldViewModeAlways;
 34  
 35 typedef enum {
 36     UITextFieldViewModeNever,  重不出现
 37     UITextFieldViewModeWhileEditing, 编辑时出现
 38     UITextFieldViewModeUnlessEditing,  除了编辑外都出现
 39     UITextFieldViewModeAlways   一直出现
 40 } UITextFieldViewMode;
 41  
 42 //输入框中一开始就有的文字
 43   text.text = @"一开始就在输入框的文字";
 44  
 45 //每输入一个字符就变成点 用语密码输入
 46   text.secureTextEntry = YES;
 47  
 48 //是否纠错
 49   text.autocorrectionType = UITextAutocorrectionTypeNo;
 50  
 51 typedef enum {
 52     UITextAutocorrectionTypeDefault, 默认
 53     UITextAutocorrectionTypeNo,   不自动纠错
 54     UITextAutocorrectionTypeYes,  自动纠错
 55 } UITextAutocorrectionType;
 56  
 57 //再次编辑就清空
 58   text.clearsOnBeginEditing = YES; 
 59  
 60 //内容对齐方式
 61   text.textAlignment = UITextAlignmentLeft;
 62  
 63 //内容的垂直对齐方式  UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment
 64   text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
 65  
 66 //设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动  
 67   textFied.adjustsFontSizeToFitWidth = YES;
 68  
 69 //设置自动缩小显示的最小字体大小
 70   text.minimumFontSize = 20;
 71  
 72 //设置键盘的样式
 73   text.keyboardType = UIKeyboardTypeNumberPad;
 74  
 75 typedef enum {
 76     UIKeyboardTypeDefault,       默认键盘,支持所有字符         
 77     UIKeyboardTypeASCIICapable,  支持ASCII的默认键盘
 78     UIKeyboardTypeNumbersAndPunctuation,  标准电话键盘,支持+*#字符
 79     UIKeyboardTypeURL,            URL键盘,支持.com按钮 只支持URL字符
 80 UIKeyboardTypeNumberPad,              数字键盘
 81 UIKeyboardTypePhonePad,     电话键盘
 82     UIKeyboardTypeNamePhonePad,   电话键盘,也支持输入人名
 83 UIKeyboardTypeEmailAddress,   用于输入电子 邮件地址的键盘     
 84 UIKeyboardTypeDecimalPad,     数字键盘 有数字和小数点
 85     UIKeyboardTypeTwitter,        优化的键盘,方便输入@、#字符
 86     UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, 
 87 } UIKeyboardType;
 88  
 89 //首字母是否大写
 90   text.autocapitalizationType = UITextAutocapitalizationTypeNone;
 91  
 92 typedef enum {
 93     UITextAutocapitalizationTypeNone, 不自动大写
 94     UITextAutocapitalizationTypeWords,  单词首字母大写
 95     UITextAutocapitalizationTypeSentences,  句子的首字母大写
 96     UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
 97 } UITextAutocapitalizationType;
 98  
 99 //return键变成什么键
100   text.returnKeyType =UIReturnKeyDone;
101  
102 typedef enum {
103     UIReturnKeyDefault, 默认 灰色按钮,标有Return
104     UIReturnKeyGo,      标有Go的蓝色按钮
105     UIReturnKeyGoogle,
106 标有Google的蓝色按钮,用语搜索
107     UIReturnKeyJoin,
108 标有Join的蓝色按钮
109     UIReturnKeyNext,
110 标有Next的蓝色按钮
111     UIReturnKeyRoute,
112 标有Route的蓝色按钮
113     UIReturnKeySearch,
114 标有Search的蓝色按钮
115     UIReturnKeySend,
116 标有Send的蓝色按钮
117     UIReturnKeyYahoo,
118 标有Yahoo的蓝色按钮
119     UIReturnKeyYahoo,
120 标有Yahoo的蓝色按钮
121     UIReturnKeyEmergencyCall, 紧急呼叫按钮
122 } UIReturnKeyType;
123  
124 //键盘外观
125 textView.keyboardAppearance=UIKeyboardAppearanceDefault;
126 typedef enum {
127 UIKeyboardAppearanceDefault, 默认外观,浅灰色
128 UIKeyboardAppearanceAlert,     深灰 石墨色
129  
130 } UIReturnKeyType;
131 
132 //设置代理 用于实现协议
133   text.delegate = self;
134  
135 //把textfield加到视图中
136   [self.window addSubview:text];
137  
138 //最右侧加图片是以下代码   左侧类似
139     UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
140     text.rightView=image;
141     text.rightViewMode = UITextFieldViewModeAlways; 
142  
143 typedef enum {
144     UITextFieldViewModeNever,
145     UITextFieldViewModeWhileEditing,
146     UITextFieldViewModeUnlessEditing,
147     UITextFieldViewModeAlways
148 } UITextFieldViewMode;
149 
150 //按return键键盘往下收  becomeFirstResponder
151  
152 类要采用UITextFieldDelegate协议
153  
154 text.delegate = self;  声明text的代理是我,我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议
155  
156 - (BOOL)textFieldShouldReturn:(UITextField *)textField
157 {
158     [text resignFirstResponder];    //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收
159     return YES;
160 }
161 
162 重写绘制行为
163 除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。
164  
165 – textRectForBounds:      //重写来重置文字区域
166 – drawTextInRect:         
167 //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
168 – placeholderRectForBounds:  
169 //重写来重置占位符区域
170 – drawPlaceholderInRect:  
171 //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
172 – borderRectForBounds:  
173 //重写来重置边缘区域
174 – editingRectForBounds:  
175 //重写来重置编辑区域
176 – clearButtonRectForBounds:  
177 //重写来重置clearButton位置,改变size可能导致button的图片失真
178 – leftViewRectForBounds:
179 – rightViewRectForBounds:
180  
181 委托方法
182  
183 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{  
184     
185 //返回一个BOOL值,指定是否循序文本字段开始编辑  
186     
187     return YES;  
188 }  
189  
190 - (void)textFieldDidBeginEditing:(UITextField *)textField{  
191 
192  //开始编辑时触发,文本字段将成为first responder  
193 }  
194  
195 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField{  
196 
197 //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder  
198    
199 //要想在用户结束编辑时阻止文本字段消失,可以返回NO  
200    
201 //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息  
202    
203     return NO;  
204 }  
205  
206 - (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{  
207 
208 //当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。  
209 //这对于想要加入撤销选项的应用程序特别有用  
210 //可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。     
211 //要防止文字被改变可以返回NO  
212 //这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中  
213  
214      return YES;  
215 }  
216  
217 - (BOOL)textFieldShouldClear:(UITextField *)textField{  
218  
219 //返回一个BOOL值指明是否允许根据用户请求清除内容  
220 //可以设置在特定条件下才允许清除内容  
221  
222      return YES;  
223 }  
224  
225 -(BOOL)textFieldShouldReturn:(UITextField *)textField{  
226  
227 //返回一个BOOL值,指明是否允许在按下回车键时结束编辑  
228  
229 //如果允许要调用resignFirstResponder 方法,这回导致结束编辑,而键盘会被收起[textField resignFirstResponder];
230 //查一下resign这个单词的意思就明白这个方法了  
231 
232      return YES;  
233 }

 

转载于:https://www.cnblogs.com/jiwangbujiu/p/5338676.html

本文利用ABB自主开发的Robot Studio离线模拟软件对涂料生产线进行了模拟,并对其反复定位精度、颜色清洁等方面进行了深入的探讨。首先,叙述了涂料生产线的功能、历史、工艺流程,并对其发展过程、特点、研究背景、研究意义作了简要的介绍。本文对喷漆机器人着色系统的硬件组成、换色与清洁机理进行了分析,并对其引起的问题及影响因素进行了分析,并进行了预处理软件的设计。对机器人在喷涂过程中容易产生的漆膜问题进行了研究,并对产生的原因进行了分析,并提出了解决办法。并对静电电压、成型空气等各工艺参数的影响进行了分析。其次,对机器人的姿态重复度和姿态精度进行了分析,提出了用雅可比矩阵表达机器人各个关节轴线的角速度与速度的关系;本文对离线编程技术的发展状况进行了分析,并对离线程序的各模块及界面的作用进行了详细的说明,并给出了离线编程的整体设计思路。最后,在Robot Studio仿真软件的基础上,通过Robot Studio仿真软件实现了涂装流水线工作站的布置,建立了工件坐标系、工具坐标系、离线输送系统模块、喷涂模型仿形模块。### 基于Robot Studio的工业机器人汽车喷涂仿真设计#### 一、引言近年来,随着汽车行业的快速发展,消费者对于汽车的外观和性能提出了更高的要求。为了满足市场需求,提高生产效率并降低生产成本,各大汽车制造商纷纷对传统油漆生产线进行改造升级。在这个背景下,喷射机器人因其高效性、精确性和可靠性而在汽车涂装生产线上扮演着关键角色。本研究旨在通过ABB自主开发的Robot Studio离线模拟软件来实现汽车喷涂生产线的仿真设计,重点讨论了机器人的重复定位精度、颜色清洁等方面的优化方案。#### 二、涂料生产线概述##### 2.1 功能与历史涂料生产线主要用于汽车表面涂层的加工,它能够根据不同的需求进行多层涂装。随着技术进步,现代涂料生产线不仅提高了生产效率,还降低了能耗和环境污染。##### 2.2 工艺流程涂料生产线的工艺流程一般包括预处理、电泳、中涂、面漆等多个环节。其中,预处理主要是去除车身表面的油污和其他杂质;电泳则是通过电流将涂料均匀地附着在车身上;中涂和面漆则负责赋予汽车美观的外观。#### 三、喷漆机器人着色系统分析##### 3.1 硬件组成喷漆机器人的硬件主要包括喷枪、颜色更换装置、清洗系统等部件。喷枪用于喷射涂料;颜色更换装置使得机器人能够在不同颜色之间快速切换;清洗系统则保证了喷枪在每次更换颜色后都能得到彻底清洁。##### 3.2 换色与清洁机理喷漆机器人通过更换不同的喷嘴或者内部管道来实现颜色的快速切换。在更换颜色前后,需要对喷枪进行彻底清洁以避免颜色污染。通常采用压缩空气或溶剂进行清洗。##### 3.3 影响因素影响喷漆机器人性能的因素主要包括涂料种类、喷涂压力、喷枪与工件之间的距离等。这些因素都会直接影响到喷涂效果的质量。#### 四、漆膜问题研究在实际喷涂过程中,可能会遇到各种漆膜问题,如流挂、橘皮现象、针孔等。这些问题通常是由涂料黏度、喷涂速度、环境温度等因素引起的。为解决这些问题,可以通过调整涂料配方、优化喷涂参数等方式来进行改进。#### 五、离线编程技术##### 5.1 发展现状离线编程技术是指在不占用实际生产设备的情况下,通过计算机软件预先编写和模拟机器人运行程序的技术。随着计算机技术的发展,离线编程已经成为提高生产效率的重要手段之一。##### 5.2 雅可比矩阵应用雅可比矩阵是描述机器人各关节轴线角速度与末端执行器速度关系的一种数学工具。通过计算雅可比矩阵,可以更准确地控制机器人的运动轨迹,从而提高其重复定位精度和姿态精度。##### 5.3 整体设计思路离线编程的整体设计思路主要包括任务规划、路径规划和程序生成三个阶段。其中,任务规划阶段确定机器人的工作任务;路径规划阶段根据任务要求计算出机器人的运动轨迹;程序生成阶段则是将规划好的轨迹转化为机器人可以执行的指令。#### 六、Robot Studio仿真软件应用##### 6.1 工作站布局利用Robot Studio软件可以实现涂装流水线工作站的虚拟布局,包括工件坐标系、工具坐标系等的设定。##### 6.2 模型仿真通过建立喷涂模型仿形模块,可以在软件中模拟整个喷涂过程,从而验证设计方案的有效性。#### 七、结论通过对喷漆机器人及其在汽车涂装生产线中应用的研究,本文不仅介绍了涂料生产线的基本情况和发展趋势,还深入探讨了喷漆机器人着色系统的工作原理、漆膜问题及其解决方案等内容。利用Robot Studio软件进行离线编程和仿真,不仅可以提高生产效率,还能有效减少生产成本,具有重要的理论和实践意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值