- 浏览: 534445 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
今天写的是用代码实现一个简单界面,代码重复率比较高,可读性不是太好,但是适合初学者看看,实现的简单功能界面:
[img]
[/img]
1.创建一个新工程叫LTFDemo; File->New->Project ->single View Application -> next
[img]
[/img]
2.打开LTFViewController.h文件,添加UITextFieldDelegate协议,因为TextField里输入内容时需要对键盘进行一些设置。界面需要一些布局,在LTFViewController.h文件一些声明对象
3.例举一个Lable的代码属性及功能的实现过程:
4.例举一个TextField的代码的实现其属性和功能的过程
5.介绍完lable和TextField代码实现,打开LTFViewController.m文件在ViewDidLoad中添加初始化代码,
6.然后用代理方法处理的就是键盘的操作,因为当键盘弹起的时候,在最下面的lable和textField可能会键盘遮挡,
在ViewDidLoad中我们有这样sNameTextField.returnKeyType=UIReturnKeyDone一段代码,作用就是当编辑完成后键盘右下角出现一个Done键,如果是中文输入法出现的是确定键,然后调用代理方法textFieldShouldReturn,当我们按下Done时,键盘就会退出;
resignFirstResponder(交出自己的第一响应者的身份,可以重写函数,这样如果写出返回no的时候当调用这个方法的时候它会拒绝交出第一响应者的身份)
7.当需要输入数字时候的时候 sAgeTextField.keyboardType = UIKeyboardTypeNumberPad;可以自动切换到数字键盘,键盘的八种风格
8.处理键盘遮挡视图的方法:
当开始点击textField会调用的方法 ,键盘高度216,当触摸高度在216一下extField时候,调整视图,把视图纵坐标向上增加216,orign(0,-216),然后view视图的高度增加216像素,相当于视图为320*696像素,如果设置增加216像素给view视图,会出现键盘遮盖部分为一篇黑色区域背景,当退出键盘是黑色会显示出来,给人视觉效果体验不好;当对textField编辑结束时调用textFieldDidEndEditing方法,调整视图为初始位置,frame.origin.y =20;为什么把视图的原点坐标纵坐标设置为20,因为iphone视图最上面通知栏占了20个像素;
9再附上其他几个委托方法源码:
10.数字键盘并没有Done键,就不能退出按钮,通过[sAgeTextFieldaddTarget:selfaction:@selector(textFieldDone:) forControlEvents:UIControlEventTouchDown];
这个相当于给TextField增加了一个按钮的功能,调用textFieldDone,当向输入框编辑完内容后,再次点击输入框键盘就退出了;
[img]
[/img]
1.创建一个新工程叫LTFDemo; File->New->Project ->single View Application -> next
[img]
[/img]
2.打开LTFViewController.h文件,添加UITextFieldDelegate协议,因为TextField里输入内容时需要对键盘进行一些设置。界面需要一些布局,在LTFViewController.h文件一些声明对象
<span style="font-size:12px;">#import <UIKit/UIKit.h> @interface LTFViewController : UIViewController<UITextFieldDelegate> { UILabel *studentLable;//设置学生标题 UILabel *sNameLable;//学生姓名 UILabel *sSexLable;//学生性别 UILabel *sAgeLable;//学生年龄 UILabel *teacherLable;//老师标题 UILabel *tNameLable;//老师姓名 UILabel *tSexLable;//老师姓名 UITextField *sNameTextField;//学生姓名输入框 UITextField *sAgeTextField;//学生年龄输入框 UITextField *sSexTextField;//学生性别输入框 UITextField *tNameTextField;//老师姓名输入框 UITextField *tSexTextField; //老师性别输入框 } @end</span>
3.例举一个Lable的代码属性及功能的实现过程:
初始化lable的位置和大小,CGRectMake()函数中的参数分别是原点坐标x和y,后面两个参数表示lable的宽度(width)和高度(height), studentLable=[[UILabelalloc] initWithFrame:CGRectMake(100,10, 100,30)]; 设置Lable的字体颜色值颜色, [studentLable setTextColor:[UIColor blackColor]]; 设置lable字体大小 studentLable.font=[UIFontsystemFontOfSize:20]; 设置lable的背景颜色 studentLable.backgroundColor = [UIColor redColor]; 设置lable的标题字体对齐方式,此处居中对其 [studentLable setTextAlignment:UITextAlignmentCenter]; 设置lable标题 studentLable.text=@"学 生"; 把lable添加到视图上,少了这一步视图上使显示不出来的 [self.view addSubview:studentLable];
4.例举一个TextField的代码的实现其属性和功能的过程
//初始化坐标位置 sNameTextField=[[UITextFieldalloc] initWithFrame:CGRectMake(100,60, 200,30)]; //为空白文本字段绘制一个灰色字符串作为占位符,提示作用 sNameTextField.placeholder =@"输入姓名"; //默认就是左对齐,这个是UITextField扩展属性 sNameTextField.textAlignment =UITextAlignmentLeft; //设置textField的形状 sNameTextField.borderStyle=UITextBorderStyleRoundedRect; //设置键盘完成按钮 sNameTextField.returnKeyType=UIReturnKeyDone; //委托类需要遵守UITextFieldDelegate协议 sNameTextField.delegate=self; //设置TextFiel输入框字体大小 sNameTextField.font = [UIFontsystemFontOfSize:18]; //安全设置,密文保护设置,显示点点,常用于密码设置栏 sNameTextField.secureTextEntry = YES; // 把TextField添加到视图上 [self.viewaddSubview:sNameTextField]; //输入年龄需要启用数字键盘,此处实现自动跳转到数字键盘 sAgeTextField.keyboardType =UIKeyboardTypeNumberPad;
5.介绍完lable和TextField代码实现,打开LTFViewController.m文件在ViewDidLoad中添加初始化代码,
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. studentLable=[[UILabel alloc] initWithFrame:CGRectMake(100, 10, 100, 30)]; sNameLable=[[UILabel alloc] initWithFrame:CGRectMake(10, 60, 80, 30)]; sSexLable=[[UILabel alloc] initWithFrame:CGRectMake(10, 100, 80, 30)]; sAgeLable=[[UILabel alloc] initWithFrame:CGRectMake(10, 140, 80, 30)]; teacherLable=[[UILabel alloc] initWithFrame:CGRectMake(100, 200, 100, 30)]; tNameLable=[[UILabel alloc] initWithFrame:CGRectMake(10,240, 80, 30)]; tSexLable=[[UILabel alloc] initWithFrame:CGRectMake(10, 280, 80, 30)]; [studentLable setTextColor:[UIColor blackColor]]; [sNameLable setTextColor:[UIColor blackColor]]; [sAgeLable setTextColor:[UIColor blackColor]]; [sSexLable setTextColor:[UIColor blackColor]]; [teacherLable setTextColor:[UIColor blackColor]]; [tNameLable setTextColor:[UIColor blackColor]]; [tSexLable setTextColor:[UIColor blackColor]]; studentLable.backgroundColor = [UIColor redColor]; sNameLable.backgroundColor = [UIColor clearColor]; sAgeLable.backgroundColor=[UIColor clearColor]; sSexLable.backgroundColor = [UIColor clearColor]; teacherLable.backgroundColor = [UIColor blueColor]; tNameLable.backgroundColor = [UIColor clearColor]; tSexLable.backgroundColor = [UIColor clearColor]; [studentLable setTextAlignment:UITextAlignmentCenter]; [sNameLable setTextAlignment:UITextAlignmentCenter]; [sAgeLable setTextAlignment:UITextAlignmentCenter]; [sSexLable setTextAlignment:UITextAlignmentCenter]; [teacherLable setTextAlignment:UITextAlignmentCenter]; [tNameLable setTextAlignment:UITextAlignmentCenter]; [tSexLable setTextAlignment:UITextAlignmentCenter]; studentLable.text=@"学 生"; sNameLable.text=@"姓名:"; sAgeLable.text=@"性别:"; sSexLable.text=@"年龄:"; teacherLable.text=@"老 师"; tNameLable.text=@"姓名:"; tSexLable.text=@"性别:"; studentLable.font=[UIFont systemFontOfSize:20]; [self.view addSubview:studentLable]; [self.view addSubview:sNameLable]; [self.view addSubview:sAgeLable]; [self.view addSubview:sSexLable]; [self.view addSubview:teacherLable]; [self.view addSubview:tNameLable]; [self.view addSubview:tSexLable]; sNameTextField=[[UITextField alloc] initWithFrame:CGRectMake(100, 60, 200, 30)];//初始化坐标位置 sNameTextField.placeholder = @"输入姓名";//为空白文本字段绘制一个灰色字符串作为占位符 sNameTextField.textAlignment = UITextAlignmentLeft;//默认就是左对齐,这个是UITextField扩展属性 sNameTextField.borderStyle=UITextBorderStyleRoundedRect; //设置textField的形状 // sNameTextField.clearsOnBeginEditing = NO;//设置为YES当用点触文本字段时,字段内容会被清除,这个属性一般用于密码设置,当输入有误时情况textField中的内容 sNameTextField.returnKeyType=UIReturnKeyDone;//设置键盘完成按钮 sNameTextField.delegate=self;//委托类需要遵守UITextFieldDelegate协议 sNameTextField.font = [UIFont systemFontOfSize:18]; //设置TextFiel输入框字体大小 sAgeTextField = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 200, 30)]; sAgeTextField.textAlignment = UITextAlignmentLeft; sAgeTextField.borderStyle = UITextBorderStyleRoundedRect; sAgeTextField.keyboardType = UIKeyboardTypeNumberPad;//输入年龄需要设置数字键盘 [sAgeTextField addTarget:self action:@selector(textFieldDone:) forControlEvents:UIControlEventTouchDown]; //用textFieldDone函数,实现关闭数字键盘 sAgeTextField.delegate=self; sSexTextField = [[UITextField alloc] initWithFrame:CGRectMake(100, 140, 200, 30)]; sSexTextField.textAlignment = UITextAlignmentLeft; sSexTextField.borderStyle = UITextBorderStyleRoundedRect; sSexTextField.returnKeyType=UIReturnKeyDone; sSexTextField.delegate=self; // sNameTextField.enabled=NO; //把 sNameTextField设置成无效,点击任何反应 tNameTextField = [[UITextField alloc] initWithFrame:CGRectMake(100, 240, 200, 30)]; tNameTextField.textAlignment = UITextAlignmentLeft; tNameTextField.borderStyle = UITextBorderStyleRoundedRect; tNameTextField.delegate=self; tSexTextField = [[UITextField alloc] initWithFrame:CGRectMake(100, 280, 200, 30)]; tSexTextField.textAlignment = UITextAlignmentLeft; tSexTextField.borderStyle = UITextBorderStyleRoundedRect; tSexTextField.returnKeyType=UIReturnKeyDone; tSexTextField.delegate=self; tSexTextField.secureTextEntry = YES; //安全设置,密文保护设置 // 测试用的TextField UITextField *testTextField = [[UITextField alloc] initWithFrame:CGRectMake(100, 400, 200, 30)]; testTextField.textAlignment = UITextAlignmentLeft; testTextField.borderStyle = UITextBorderStyleRoundedRect; testTextField.returnKeyType=UIReturnKeyDone; testTextField.delegate=self; // 把TextField添加到视图上 [self.view addSubview:sNameTextField]; [self.view addSubview:sAgeTextField]; [self.view addSubview:sSexTextField]; [self.view addSubview:tSexTextField]; [self.view addSubview:tNameTextField]; [self.view addSubview:testTextField]; }
6.然后用代理方法处理的就是键盘的操作,因为当键盘弹起的时候,在最下面的lable和textField可能会键盘遮挡,
在ViewDidLoad中我们有这样sNameTextField.returnKeyType=UIReturnKeyDone一段代码,作用就是当编辑完成后键盘右下角出现一个Done键,如果是中文输入法出现的是确定键,然后调用代理方法textFieldShouldReturn,当我们按下Done时,键盘就会退出;
resignFirstResponder(交出自己的第一响应者的身份,可以重写函数,这样如果写出返回no的时候当调用这个方法的时候它会拒绝交出第一响应者的身份)
//按下Done按钮时调用这个方法,可让按钮消失 -(BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; }
7.当需要输入数字时候的时候 sAgeTextField.keyboardType = UIKeyboardTypeNumberPad;可以自动切换到数字键盘,键盘的八种风格
typedefenum { UIKeyboardTypeDefault, // 默认键盘:支持所有字符 UIKeyboardTypeASCIICapable, // 支持ASCII的默认键盘 UIKeyboardTypeNumbersAndPunctuation, // 标准电话键盘,支持+*#等符号 UIKeyboardTypeURL, // URL键盘,有.com按钮;只支持URL字符 UIKeyboardTypeNumberPad, //数字键盘 UIKeyboardTypePhonePad, // 电话键盘 UIKeyboardTypeNamePhonePad, // 电话键盘,也支持输入人名字 UIKeyboardTypeEmailAddress, // 用于输入电子邮件地址的键盘 } UIKeyboar;
8.处理键盘遮挡视图的方法:
当开始点击textField会调用的方法 ,键盘高度216,当触摸高度在216一下extField时候,调整视图,把视图纵坐标向上增加216,orign(0,-216),然后view视图的高度增加216像素,相当于视图为320*696像素,如果设置增加216像素给view视图,会出现键盘遮盖部分为一篇黑色区域背景,当退出键盘是黑色会显示出来,给人视觉效果体验不好;当对textField编辑结束时调用textFieldDidEndEditing方法,调整视图为初始位置,frame.origin.y =20;为什么把视图的原点坐标纵坐标设置为20,因为iphone视图最上面通知栏占了20个像素;
-(void)textFieldDidBeginEditing:(UITextField *)textField { // 键盘高度216 if (textField.frame.origin.y>216) { CGRect frame = self.view.frame; frame.origin.y -=216; frame.size.height +=216; self.view.frame=frame; } }
// 当对textField编辑结束时调用此方法,需要调整视图为初始位置 -(void)textFieldDidEndEditing:(UITextField *)textField { CGRect frame = self.view.frame; frame.origin.x=00; frame.origin.y =20;//为什么20,因为iphone视图最上面通知栏20个像素 frame.size.height =480; self.view.frame=frame; }
9再附上其他几个委托方法源码:
//TextField的委托方法 -(BOOL)textFieldShouldEndEditing:(UITextField *)textField { //返回一个BOOL型值,指定是否循序文本字段编辑 return YES; }
-(BOOL)textFieldShouldClear:(UITextField *)textField { // 返回一个BOOL值指明是否允许根据用户请求清除内容 可以设置在特定条件下才允许清除内容 return YES; }
10.数字键盘并没有Done键,就不能退出按钮,通过[sAgeTextFieldaddTarget:selfaction:@selector(textFieldDone:) forControlEvents:UIControlEventTouchDown];
这个相当于给TextField增加了一个按钮的功能,调用textFieldDone,当向输入框编辑完内容后,再次点击输入框键盘就退出了;
//重写数字键盘的方法 -(void)textFieldDone:(id)sender{ [sAgeTextField resignFirstResponder]; }
发表评论
-
新风作浪博客学习(十九)在iOS虚拟键盘上添加动态隐藏按钮
2013-06-08 09:19 859为了给用户比较良好的交付,想在键盘上添加一个按钮,实时根据键盘 ... -
新风作浪博客学习(十八)openURL的使用(iOS调用系统电话、浏览器、地图、邮件等) .
2013-06-08 09:19 1003今天遇见一行代码实现打开一个网页,比起印象里的UIWebVie ... -
新风作浪博客学习(十七)UIImageView响应点击事件 .
2013-06-08 09:19 703有时候会遇到点击一张图片,然后让这张图片触发一个事件,或者是跳 ... -
新风作浪博客学习(十六)Navigation + Tab Bar 常用组合框架 .
2013-06-07 08:50 1248看到很多项目中都采用的是Navigation加Tab Bar组 ... -
新风作浪博客学习(十五)google地图定位小Demo .
2013-06-07 08:50 1138[img][/img]今天写的是一个简单功能的google地图 ... -
新风作浪博客学习(十四)怎样向iPhone模拟器中添加图片 .
2013-06-07 08:50 785在我们做项目中可能需要使用图库,模拟器是有图库的,但是如何像其 ... -
新风作浪博客学习(十三)表视图的分组分区和索引分区 .
2013-06-07 08:50 798本次实现的是表视图的分区和索引,代码和前面都差不多,主要还是代 ... -
新风作浪博客学习(十二)代码实现UITableViewCell表视图单元定制 .
2013-06-07 08:49 997通常情况下我们会希望单元格UITableViewCell显示自 ... -
新风作浪博客学习(十一)UITableViewCell的标记、移动、删除、插入 .
2013-06-06 09:15 1115这篇文章是建立在 代码实现 UITableView与UITa ... -
新风作浪博客学习(十)代码实现 UITableView与UITableViewCell .
2013-06-06 09:14 1153我们常用的表格类视图就是用 UITableView与UITab ... -
新风作浪博客学习(九)两个UIPickerView控件间的数据依赖 .
2013-06-06 09:14 1071本篇实现功能是两个选取器的关联操作,滚动第一个滚轮第二个滚 ... -
新风作浪博客学习(八)代码实现UIPickerView .
2013-06-06 09:14 1282先说一下当个组件选取器,我们创建一个数组NSAray来保存选取 ... -
新风作浪博客学习(七)代码 实现UIDatePicker控件 和 Tab Bar 视图切换 .
2013-06-06 09:15 1107感觉代码写控件都一个理,先在ViewDidLoad中创建控件对 ... -
新风作浪博客学习(六)ios 视图切换翻页效果 .
2013-06-05 11:18 1060本文写的是视图切换,涉及到的内容有 1.实现代码添加Navi ... -
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
2013-02-18 09:15 1149本次实现的UISlider和UISwi ... -
新风作浪博客学习(四)把plist里数据显示在textField上 .
2013-02-18 09:15 916在代码实现Lable 、textFie ... -
新风作浪博客学习(三)NSBundle读取图片 plist文件和txt文件
2013-02-18 09:15 1728本文想简单介绍一下NSBundle读取图片到视图上,读取pli ... -
新风作浪博客学习(一)plist文件读写操作
2013-02-18 09:14 1361文件plist 全名Property List,属性列表文件, ... -
GCDiscreetNotificationView提示视图
2013-06-05 11:17 559先看一下效果图: [img] ... -
iphone开发之适配iphone5
2013-06-05 11:15 1093iphone5出来了,从不用适配的我们也要像android一样 ...
相关推荐
通过以上步骤,我们便能用代码实现一个简单的包含Label和TextField的界面,并且具备了处理键盘的基本功能。在实际开发中,还可以根据需求添加更多交互效果,如文本验证、自定义键盘样式等。`LTFDemo`项目可能包含了...
在这里,我们将深入探讨Swift中的`label`(标签)、`button`(按钮)和`textField`(文本字段),以及如何利用它们来实现从系统相册中选择并上传照片的功能。 1. **标签(Label)** `UILabel`是Swift中用于显示...
该压缩包文件“音频处理_lable7_matlabGUI音频处理_音频_shut1l4_源码.zip”主要涉及的是音频处理方面的知识,特别提到了使用MATLAB GUI(图形用户界面)进行操作。MATLAB是一种强大的数学计算软件,广泛应用于信号...
在本主题中,我们将深入探讨如何使用MATLAB的图形用户界面(GUI)进行音频处理,特别是在"音频处理_lable7_matlabGUI音频处理_音频_shut1l4_"这个项目中。MATLAB是一款强大的数学计算软件,其GUI功能使得用户能够...
本话题将深入探讨如何利用Winform技术实现Button和Label控件的组合应用,创建一个自定义控件,以及如何处理相关的事件。 首先,让我们了解基本的控件概念。在Winform中,Button控件是一种常用的交互元素,用户可以...
在提供的压缩包"单一label多颜色多字体2"中,可能包含了实现这一功能的代码示例,包括创建`NSAttributedString`、设置属性、以及可能的自定义`UILabel`子类等。通过查看和学习这些代码,你可以了解具体的实现细节,...
在IT行业中,尤其是在数据分析、报告制作或网页设计领域,创建美观、清晰的表格是至关重要的。"用lable写出漂亮的表格"这个主题聚焦于如何利用编程语言中的lable(可能是标签或者拼写错误,通常应为`label`)库来...
在VB.NET 2010中,虽然设计时界面不直接支持控件数组,但开发者可以通过编程方式实现这一功能。控件数组是一种特殊的数据结构,它允许你将多个相同类型的控件作为一个整体来处理,方便地批量设置或访问它们的属性。...
总的来说,通过实现九九乘法表,你可以深入学习ASP.NET的服务器控件、页面生命周期、数据绑定、状态管理,以及客户端脚本与服务器端代码的协同工作。这个项目对于初学者来说既实用又有趣,能够帮助他们快速掌握ASP...
本文将深入探讨一个特定的UI设计技术,即“鼠标拖拽Lable计算Lable所有的数值到父控件上显示”,并结合页面配备的滚动条,来创建一个高效且用户友好的体验。 首先,我们要理解的是“鼠标拖拽控件”的概念。这是一种...
在VC++编程环境中,开发人员经常使用各种控件来构建用户界面。CLable控件是MFC(Microsoft Foundation Classes)库中的一个扩展,它是标准Windows控件Label的增强版本,提供更多的功能和自定义选项。这个"VC++ 一个...
c# 继承 TextBox 在前面添加Lable
public 学生信息图形界面() { //构造方法 //界面显示问题 super("学生信息图形界面"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(320, 300); setVisible(true); Container content = ...
在这个“label标签初级代码”主题中,我们将深入探讨`Label`标签的使用,包括其显示、消失、移动以及颜色属性的设置。 首先,`Label`标签的显示与隐藏可以通过编程来控制。在Windows Forms或WPF应用中,我们可以...
例如,如果在一个AX环境中创建了一个名为`SHI`的标签文件ID,并且该环境支持五种不同的语言,则系统会在AX安装路径下的指定目录中生成五个不同的ald文件,每个文件对应一种语言。以中文为例,对应的ald文件名格式为`...
在C#中,我们可以创建一个自定义的Label控件,重写OnPaint方法,利用Graphics对象的SmoothingMode和CompositingMode属性,以及Color.FromArgb方法设置Alpha通道,来实现透明效果。 以下是一个简单的实现步骤: 1. ...
通过研究这些源代码,你可以了解如何在不同编程语言和框架中实现透明Label,以及如何将它们集成到你的项目中,提升用户界面的视觉效果和用户体验。同时,这也是学习和借鉴他人编程技巧的好机会。
在编程和用户界面设计中,Label控件是用于展示文本信息的基本元素,它通常用于向用户提供简短的提示或说明。在很多情况下,我们可能需要让Label显示多行文本,或者改变其颜色来提高视觉效果和用户体验。下面将详细...
在实际应用中,这样的滚动Label组件特别适用于显示长篇文本,例如日志、代码片段或任何不适合一次性完全显示的内容。通过调整滚动速度和滚动条样式,开发者可以定制适合用户界面的滚动行为,提高用户体验。 总之,...
从创建窗口到实现核心功能(如显示图片、拖动、放大缩小以及打开文件),每一个步骤都进行了详尽的说明和代码演示。对于初学者而言,这是一个很好的起点,同时也为有经验的开发者提供了一种简洁明了的方法来扩展他们...