zoukankan      html  css  js  c++  java
  • 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];

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

  • 相关阅读:
    Zabbix客户端日志出现(Not all processes could be identified, 解决
    zabbix 本地编译安装
    redis 配置文件解释 以及集群部署
    Unix shell范例精解 课后题
    if __name__ == '__main__':用法
    爬取猫眼电影100榜单 代码
    CentOS编译安装软件过程中遇到zlib.h: No such file or directory
    Codeigniter添加Composer支持
    CodeIgniter composer.json安装第三类库操作
    使用composer命令加载vendor中的第三方类库 的方法
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4848188.html
Copyright © 2011-2022 走看看