iOS 注册或登录页面(UILable,UITextField,UIButton)

注册或登录页面

例如下面的附图

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];

版权声明:本文博主原创文章。博客,未经同意不得转载。

posted on 2015-09-30 09:10  gcczhongduan  阅读(506)  评论(0编辑  收藏  举报