注册或登录页面
例如下面的附图
1,为了在这里展示UITextField文本框关联的键盘设置。在这里,“password”和“判定password”关联键盘被设置为数字键盘,实际应用password普遍认为,一个数字或字母。
2,了键盘收回操作。
3,这里没有写对“username”进行特殊字符过滤的代码。
实现代码:
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //三个UILabel UILabel *nameLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 60, 80, 37)]; nameLabel.font = [UIFont systemFontOfSize:15]; nameLabel.text = @"用 户 名:"; nameLabel.backgroundColor = [UIColor clearColor]; nameLabel.textAlignment = NSTextAlignmentLeft; nameLabel.numberOfLines = 2; //用于设置UILabel中文本的行数 [self.view addSubview:nameLabel]; [nameLabel release]; UILabel *newPasswordLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 60+40, 80, 37)]; newPasswordLabel.font = [UIFont systemFontOfSize:15]; newPasswordLabel.text = @"密 码:"; newPasswordLabel.backgroundColor = [UIColor clearColor]; newPasswordLabel.textAlignment = NSTextAlignmentLeft; [self.view addSubview:newPasswordLabel]; [newPasswordLabel release]; UILabel *oncePasswordLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 60+40*2, 80, 37)]; oncePasswordLabel.font = [UIFont systemFontOfSize:15]; oncePasswordLabel.text = @"确认密码:"; oncePasswordLabel.backgroundColor = [UIColor clearColor]; oncePasswordLabel.textAlignment = NSTextAlignmentLeft; [self.view addSubview:oncePasswordLabel]; [oncePasswordLabel release]; //三个输入框 UITextField *nameTextField = [[UITextField alloc]initWithFrame:CGRectMake(90, 60, 210, 30)]; nameTextField.placeholder = @"请输入username"; nameTextField.tag = 1; [nameTextField setSecureTextEntry:NO]; nameTextField.font = [UIFont systemFontOfSize:14]; nameTextField.delegate = self; nameTextField.backgroundColor = [UIColor clearColor]; nameTextField.borderStyle = UITextBorderStyleRoundedRect; [self.view addSubview:nameTextField]; [nameTextField release]; UITextField *passwordTextField = [[UITextField alloc]initWithFrame:CGRectMake(90, 60+40, 210, 30)]; passwordTextField.placeholder = @"至少6位数字"; passwordTextField.tag = 2; [passwordTextField setSecureTextEntry:YES]; passwordTextField.font = [UIFont systemFontOfSize:14]; passwordTextField.delegate = self; passwordTextField.backgroundColor = [UIColor clearColor]; passwordTextField.borderStyle = UITextBorderStyleRoundedRect; passwordTextField.keyboardType = UIKeyboardTypeNumberPad; [self.view addSubview:passwordTextField]; [passwordTextField release]; UITextField *onceNewPasswordTextField = [[UITextField alloc]initWithFrame:CGRectMake(90, 60+40*2, 210, 30)]; onceNewPasswordTextField.placeholder = @"请再次输入密码"; onceNewPasswordTextField.tag = 3; onceNewPasswordTextField.font = [UIFont systemFontOfSize:14]; [onceNewPasswordTextField setSecureTextEntry:YES]; onceNewPasswordTextField.delegate = self; onceNewPasswordTextField.backgroundColor = [UIColor clearColor]; onceNewPasswordTextField.borderStyle = UITextBorderStyleRoundedRect; onceNewPasswordTextField.keyboardType = UIKeyboardTypeNumberPad; [self.view addSubview:onceNewPasswordTextField]; [onceNewPasswordTextField release]; UIButton *confirmButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; confirmButton.frame = CGRectMake(110, 60+40*3+20, 100, 37); [confirmButton setTitle:@"确定" forState:UIControlStateNormal]; //正常状况下button显示的标题 [confirmButton setTitle:@"确定" forState:UIControlStateHighlighted]; //高亮显示时button的标题 confirmButton.backgroundColor = [UIColor redColor]; [confirmButton addTarget:self action:@selector(confirm:) forControlEvents:UIControlEventTouchUpInside];//button被按下又抬起后发生的事件 //@selector能够理解为"选择子",selector是一个指针变量,相似于sender。 这里是将method的方法指定给新建的这个confirmButton [self.view addSubview:confirmButton]; } //收回键盘 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { for (int i = 0; i<4; i++) { UITextField *textField = (UITextField*)[self.view viewWithTag:1+i]; [textField resignFirstResponder]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
UILabel
UILabel继承了UIView,它能够设置UIView所支持的属性。
UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 20.0, 200.0, 50.0)]; //设置Label的位置和大小 //设置显示文字 label1.text = @"username"; //设置字体:粗体,正常的是 SystemFontOfSize label1.font = [UIFont boldSystemFontOfSize:20]; //设置文字颜色 label1.textColor = [UIColor orangeColor]; //设置文字位置 label1.textAlignment = UITextAlignmentRight; label2.textAlignment = UITextAlignmentCenter; //设置字体大小适应label宽度 label4.adjustsFontSizeToFitWidth = YES; //设置label的行数 label5.numberOfLines = 2; UIlabel.backgroudColor=[UIColor clearColor]; //能够去掉背景色 //设置高亮 label6.highlighted = YES; label6.highlightedTextColor = [UIColor orangeColor]; //设置阴影 label7.shadowColor = [UIColor redColor]; label7.shadowOffset = CGSizeMake(1.0,1.0); //设置能否与用户进行交互 label7.userInteractionEnabled = YES; //设置label中的文字是否可变,默认值是YES label3.enabled = NO; //设置文字过长时的显示格式 label3.lineBreakMode = UILineBreakModeMiddleTruncation;//截去中间 // typedef enum { // UILineBreakModeWordWrap = 0, // UILineBreakModeCharacterWrap, // UILineBreakModeClip,//截去多余部分 // UILineBreakModeHeadTruncation,//截去头部 // UILineBreakModeTailTruncation,//截去尾部 // UILineBreakModeMiddleTruncation,//截去中间 // } UILineBreakMode; //假设adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为 label4.baselineAdjustment = UIBaselineAdjustmentNone; // typedef enum { // UIBaselineAdjustmentAlignBaselines, // UIBaselineAdjustmentAlignCenters, // UIBaselineAdjustmentNone, // } UIBaselineAdjustment;
有时须要设置UILabel中文本的行数,其属性值默觉得1,用于设置该UILabel仅仅能显示一行文本。
oldPasswordLabel.numberOfLines = 2;
UITextField
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //当输入框没有内容时。水印提示 ,提示内容为“username” //显示灰色字体,作为提示信息 text.placeholder = @"username"; //设置边框样式,仅仅有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBorderStyleBezel, UITextBorderStyleRoundedRect } UITextBorderStyle; //设置键盘的样式 text.keyboardType = UIKeyboardTypeNumberPad; typedef enum { UIKeyboardTypeDefault, //默认键盘,支持全部字符 UIKeyboardTypeASCIICapable, //支持ASCII的默认键盘 UIKeyboardTypeNumbersAndPunctuation, //标准电话键盘,支持+*#字符 UIKeyboardTypeURL, //URL键盘,支持.combutton 仅仅支持URL字符 UIKeyboardTypeNumberPad, //数字键盘 UIKeyboardTypePhonePad, //电话键盘 UIKeyboardTypeNamePhonePad, //电话键盘,也支持输入人名 UIKeyboardTypeEmailAddress, //用于输入电子 邮件地址的键盘 UIKeyboardTypeDecimalPad, //数字键盘 有数字和小数点 UIKeyboardTypeTwitter, //优化的键盘。方便输入@、#字符 UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, } UIKeyboardType; //每输入一个字符就变成点 用语password输入 text.secureTextEntry = YES; //设置输入框的背景颜色。此时设置为白色 假设使用了自己定义的背景图片边框会被忽略掉 text.backgroundColor = [UIColor whiteColor]; //设置背景图片 text.background = [UIImage imageNamed:@"dd.png"]; //设置背景 text.disabledBackground = [UIImage imageNamed:@"cc.png"]; //设置输入框内容的字体样式和大小 text.font = [UIFont fontWithName:@"Arial" size:20.0f]; //设置字体颜色 text.textColor = [UIColor redColor]; //输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容 text.clearButtonMode = UITextFieldViewModeAlways; typedef enum { UITextFieldViewModeNever, //从不出现 UITextFieldViewModeWhileEditing, //编辑时出现 UITextFieldViewModeUnlessEditing, //除了编辑外都出现 UITextFieldViewModeAlways //一直出现 } UITextFieldViewMode; //输入框中一開始就有的文字 text.text = @"一開始就在输入框的文字"; //是否纠错 text.autocorrectionType = UITextAutocorrectionTypeNo; typedef enum { UITextAutocorrectionTypeDefault, //默认 UITextAutocorrectionTypeNo, //不自己主动纠错 UITextAutocorrectionTypeYes, //自己主动纠错 } UITextAutocorrectionType; //再次编辑就清空 text.clearsOnBeginEditing = YES; //内容对齐方式 text.textAlignment = UITextAlignmentLeft; //内容的垂直对齐方式 UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; //设置为YES时文本会自己主动缩小以适应文本窗体大小.默认是保持原来大小,而让长文本滚动 textFied.adjustsFontSizeToFitWidth = YES; //设置自己主动缩小显示的最小字体大小 text.minimumFontSize = 20; //首字母是否大写 text.autocapitalizationType = UITextAutocapitalizationTypeNone; typedef enum { UITextAutocapitalizationTypeNone, 不自己主动大写 UITextAutocapitalizationTypeWords, 单词首字母大写 UITextAutocapitalizationTypeSentences, 句子的首字母大写 UITextAutocapitalizationTypeAllCharacters, 全部字母都大写 } UITextAutocapitalizationType; //return键变成什么键 text.returnKeyType =UIReturnKeyDone; typedef enum { UIReturnKeyDefault, //默认 灰色button,标有Return UIReturnKeyGo, //标有Go的蓝色button UIReturnKeyGoogle, //标有Google的蓝色button,用语搜索 UIReturnKeyJoin, //标有Join的蓝色button UIReturnKeyNext, //标有Next的蓝色button UIReturnKeyRoute, //标有Route的蓝色button UIReturnKeySearch, //标有Search的蓝色button UIReturnKeySend, //标有Send的蓝色button UIReturnKeyYahoo, //标有Yahoo的蓝色button UIReturnKeyYahoo, //标有Yahoo的蓝色button UIReturnKeyEmergencyCall, //紧急呼叫button } UIReturnKeyType; //键盘外观 textView.keyboardAppearance=UIKeyboardAppearanceDefault; typedef enum { UIKeyboardAppearanceDefault。 //默认外观,浅灰色 UIKeyboardAppearanceAlert, //深灰 石墨色 } UIReturnKeyType; //设置代理 用于实现协议 text.delegate = self; //把textfield加到视图中 [self.window addSubview:text]; //最右側加图片是下面代码 左側相似 UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]]; text.rightView=image; text.rightViewMode = UITextFieldViewModeAlways; typedef enum { UITextFieldViewModeNever, UITextFieldViewModeWhileEditing, UITextFieldViewModeUnlessEditing, UITextFieldViewModeAlways } UITextFieldViewMode;
在处理password等隐私类的信息时,可能须要将输入的信息隐藏一下。
//每输入一个字符就变成点 ,用语密码输入 [passwordTextField setSecureTextEntry:YES];
也能够设置文本框关联的键盘。例如以下:
//设置键盘的样式 text.keyboardType = UIKeyboardTypeNumberPad; typedef enum { UIKeyboardTypeDefault, //默认键盘,支持全部字符 UIKeyboardTypeASCIICapable, //支持ASCII的默认键盘 UIKeyboardTypeNumbersAndPunctuation, //标准电话键盘。支持+*#字符 UIKeyboardTypeURL, //URL键盘,支持.combutton 仅仅支持URL字符 UIKeyboardTypeNumberPad, //数字键盘 UIKeyboardTypePhonePad, //电话键盘 UIKeyboardTypeNamePhonePad, //电话键盘。也支持输入人名 UIKeyboardTypeEmailAddress, //用于输入电子 邮件地址的键盘 UIKeyboardTypeDecimalPad, //数字键盘 有数字和小数点 UIKeyboardTypeTwitter, //优化的键盘,方便输入@、#字符 UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, } UIKeyboardType;
有时须要限制输入文本的长度,这类操作也很普遍和重要。
//限制输入文本的长度 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if ([textField.text length] > MAXLENGTH) { textField.text = [textField.text substringToIndex:MAXLENGTH-1]; return NO; } return YES; }
UIButton
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; // 能够定义的button类型有以下6种, // typedef enum { // UIButtonTypeCustom = 0, 自己定义风格 // UIButtonTypeRoundedRect, 圆角矩形 // UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做具体说明用 // UIButtonTypeInfoLight, 亮色感叹号 // UIButtonTypeInfoDark, 暗色感叹号 // UIButtonTypeContactAdd, 十字加号按钮 // } UIButtonType; //给定button在view上的位置 button1.frame = CGRectMake(20, 20, 280, 20); //button背景色 button1.backgroundColor = [UIColor clearColor]; //设置button填充图片 //[button1 setImage:[UIImage imageNamed:@"btng.png"] forState:UIControlStateNormal]; //设置button标题 [button1 setTitle:@"点击" forState:UIControlStateNormal]; /* forState: 这个參数的作用是定义按钮的文字或图片在何种状态下才会显现*/ //以下是几种状态 // enum { // UIControlStateNormal = 0, 常规状态显现 // UIControlStateHighlighted = 1 << 0, 高亮状态显现 // UIControlStateDisabled = 1 << 1, 禁用的状态才会显现 // UIControlStateSelected = 1 << 2, 选中状态 // UIControlStateApplication = 0x00FF0000, 当应用程序标志时 // UIControlStateReserved = 0xFF000000 为内部框架预留,能够无论他 // }; /* * 默认情况下。当按钮高亮的情况下,图像的颜色会被画深一点。假设这以下的这个属性设置为no, * 那么能够去掉这个功能 */ button1.adjustsImageWhenHighlighted = NO; /*跟上面的情况一样。默认情况下,当按钮禁用的时候,图像会被画得深一点,设置NO能够取消设置*/ button1.adjustsImageWhenDisabled = NO; /* 以下的这个属性设置为yes的状态下,按钮按下会发光*/ button1.showsTouchWhenHighlighted = YES; /* 给button加入事件,事件有非常多种,我会单独开一篇博文介绍它们,以下这个时间的意思是 按下按钮,而且手指离开屏幕的时候触发这个事件,跟web中的click事件一样。 触发了这个事件以后,运行butClick:这种方法。addTarget:self 的意思是说。这种方法在本类中 也能够传入其它类的指针*/ [button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside]; //显示控件 [self.view addSubview:button1];
单独说明一下:
UIButton *confirmButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; confirmButton.frame = CGRectMake(110, 60+40*3+20, 100, 37); [confirmButton setTitle:@"确定" forState:UIControlStateNormal]; //正常状况下button显示的标题 [confirmButton setTitle:@"确定" forState:UIControlStateHighlighted]; //高亮显示时button的标题 confirmButton.backgroundColor = [UIColor redColor]; [confirmButton addTarget:self action:@selector(confirm:) forControlEvents:UIControlEventTouchUpInside];//button被按下又抬起后发生的事件 //@selector能够理解为"选择子",selector是一个指针变量,相似于sender。 这里是将method的方法指定给新建的这个confirmButton [self.view addSubview:confirmButton];
若要设置UIButton的背景图片时:
UIButton *confirmButton = [UIButton buttonWithType:UIButtonTypeCustom]; confirmButton.frame = CGRectMake(10, 60, 100, 40); UIImage *nextStepImage = [UIImage imageNamed:@"app.png"]; UIImage *nextStepDownImage = [UIImage imageNamed:@"app.png"]; nextStepImage = [nextStepImage resizableImageWithCapInsets:UIEdgeInsetsMake(8, 8, 8, 8)]; nextStepDownImage = [nextStepDownImage resizableImageWithCapInsets:UIEdgeInsetsMake(8, 8, 8, 8)]; [confirmButton setBackgroundImage:nextStepImage forState:UIControlStateNormal]; [confirmButton setBackgroundImage:nextStepDownImage forState:UIControlStateHighlighted]; [confirmButton setTitle:@"确定" forState:UIControlStateNormal]; [confirmButton addTarget:self action:@selector(confirm:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:confirmButton];
版权声明:本文博主原创文章。博客,未经同意不得转载。