本地数据持久化登录注册

首先需要导入一个第三方的SDK    MBProgressHUD ,为了显示提示框,如下图:



在viewController中写控件的属性代码:

@property(nonatomic,strong)UITextField * Account;

@property(nonatomic,strong)UITextField * passWord;

@property(nonatomic,strong)UIButton * Login;

@property(nonatomic,strong)UIButton * Register;

@property(nonatomic,strong)UISwitch * Switch;




利用封装的方法,加载控件的初始化方法

//初始化账号输入框

-(UITextField*)Account

{

    if(!_Account)

    {

        _Account=[[UITextField alloc]initWithFrame:CGRectMake(5, 280, self.view.frame.size.width-10, 50)];


        _Account.borderStyle=UITextBorderStyleRoundedRect;


        _Account.alpha=0.5;


        _Account.placeholder=@"请输入账号";


        _Account.textAlignment=NSTextAlignmentCenter;


        _Account.keyboardType=UIKeyboardTypeNamePhonePad;



    }

    return _Account;

}

//初始化密码输入框

-(UITextField* )passWord

{

    if(!_passWord)

    {

        _passWord=[[UITextField alloc]initWithFrame:CGRectMake(5, 350, self.view.frame.size.width-10, 50)];


         _passWord.borderStyle=UITextBorderStyleRoundedRect;


        _passWord.alpha=0.5;


        _passWord.placeholder=@"请输入密码";


        _passWord.secureTextEntry=YES;


        _passWord.textAlignment=NSTextAlignmentCenter;


        _passWord.keyboardType=UIKeyboardTypePhonePad;



    }

    return _passWord;

}

//初始化登录按钮

-(UIButton* )Login

{

    if(!_Login)

    {

        _Login=[[UIButton alloc]initWithFrame:CGRectMake(20,450,self.view.frame.size.width-40,50)];


        _Login.backgroundColor=[UIColor orangeColor];


        _Login.alpha=0.8;


        _Login.layer.cornerRadius=20;


        _Login.layer.masksToBounds=YES;


        [_Login setTitle:@"登录" forState:UIControlStateNormal];


         [_Login addTarget:self action:@selector(denglu) forControlEvents:UIControlEventTouchUpInside];


    }

    return _Login;

}

//初始化注册按钮

-(UIButton* )Register

{

    if(!_Register)

    {

        _Register=[[UIButton alloc]initWithFrame:CGRectMake(350,750,self.view.frame.size.width-350,40)];


        [_Register setTitle:@"注册" forState:UIControlStateNormal];


        [_Register setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];


        [_Register addTarget:self action:@selector(zhuce) forControlEvents:UIControlEventTouchUpInside];


       // _Register.backgroundColor=[UIColor redColor];


    }

    return _Register;

}

//初始化开关

-(UISwitch* )Switch

{

    if(!_Switch)

    {

        _Switch=[[UISwitch alloc]initWithFrame:CGRectMake(5, 750, 100, 40)];


        [_Switch addTarget:self action:@selector(changeColor:) forControlEvents:UIControlEventValueChanged];

    }

    return _Switch;

}



在viewDidLoad中添加控件到主视图:

//添加账号文本框

    [self.view  addSubview:self.Account];


    //添加密码文本框

    [self.view  addSubview:self.passWord];


    //添加登录按钮

    [self.view  addSubview:self.Login];


    //添加注册按钮

    [self.view  addSubview:self.Register];



    //添加开关

    [self.view  addSubview:self.Switch];


可以设置一些界面的效果:

//导航不透明

    self.navigationController.navigationBar.translucent=NO;

    self.view.backgroundColor=[UIColor whiteColor];


    //标题

    self.navigationItem.title=@"登录界面";


    //背景视图

    UIImageView * imgv=[[UIImageView alloc]initWithFrame:self.view.frame];


    imgv.image=[UIImage  imageNamed:@"16.jpeg"];


    imgv.alpha=0.5;


    [self.view  addSubview:imgv];



    //头像视图

    UIImageView * touImgv=[[UIImageView alloc]initWithFrame:CGRectMake((self.view.frame.size.width-100)/2, 100, 100, 100)];


    touImgv.layer.cornerRadius=50;


    touImgv.layer.masksToBounds=YES;


    touImgv.image=[UIImage imageNamed:@"12.jpg"];


    [self.view  addSubview:touImgv];



写点击和注册的方法:


//实现注册点击方法

-(void)zhuce

{

    ZCViewController * zc=[ZCViewController new];




    [self.navigationController pushViewController:zc animated:YES];



}


//实现登录点击方法

-(void)denglu

{

    //创建NSUserDefaults对象

    NSUserDefaults * userDes=[NSUserDefaults standardUserDefaults];


    //获取NSUserDefaults的账户

    NSString* user = [userDes objectForKey:@"account"];


    NSString* pass=[userDes objectForKey:@"password"];




    //判断是否成功  如果user,pass和输入框的文字相同,则登录成功,否则登录失败

    if([self.Account.text isEqualToString:user] &&[self.passWord.text isEqualToString:pass] )

    {

        //提示用户登录成功

        [self showMBAlertWithMessage:@"登录成功"];

    }

    else

    {

        //提示用户登录失败

        [self showMBAlertWithMessage:@"账号或密码有误,请重新输入"];

    }


}

//实现开关的方法

-(void)changeColor:(UISwitch*)Switch{

    if(Switch.isOn){

        NSLog(@"开");

    }else{

        NSLog(@"关");

    }

}

//点击屏幕的空白处收起键盘

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event

{

    [self.view endEditing:YES];

}




// 设置第三方的显示提示框

-(void)showMBAlertWithMessage:(NSString*)msg {

    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:self.view];

    hud.mode = MBProgressHUDModeText; // 设置文本样式

    hud.labelText= msg;    // 设置显示的提示文本

    hud.removeFromSuperViewOnHide = YES;

    [self.view addSubview:hud];

    [hud show:YES];

    [hud hide:YES afterDelay:3.0];

}




我们上面代码中写到跳转页面到ZCViewController,所以我们需要创建一个继承与UIViewcontroller的视图控制器:

声明属性:

@property(nonatomic,strong)UITextField * Account;

@property(nonatomic,strong)UITextField * passWord;

@property(nonatomic,strong)UIButton * Register;



初始化控件:

//初始化账号输入框

-(UITextField*)Account

{

    if(!_Account)

    {

        _Account=[[UITextField alloc]initWithFrame:CGRectMake(5, 100, self.view.frame.size.width-10, 50)];


        _Account.borderStyle=UITextBorderStyleRoundedRect;


        _Account.alpha=0.5;


        _Account.placeholder=@"请输入账号";


        _Account.textAlignment=NSTextAlignmentCenter;


        _Account.keyboardType=UIKeyboardTypeNamePhonePad;



    }

    return _Account;

}

//初始化密码输入框

-(UITextField* )passWord

{

    if(!_passWord)

    {

        _passWord=[[UITextField alloc]initWithFrame:CGRectMake(5, 160, self.view.frame.size.width-10, 50)];


        _passWord.borderStyle=UITextBorderStyleRoundedRect;


        _passWord.alpha=0.5;


        _passWord.placeholder=@"请输入密码";


        _passWord.secureTextEntry=YES;


        _passWord.textAlignment=NSTextAlignmentCenter;


        _passWord.keyboardType=UIKeyboardTypePhonePad;



    }

    return _passWord;

}

//初始化注册按钮

-(UIButton* )Register

{

    if(!_Register)

    {

        _Register=[[UIButton alloc]initWithFrame:CGRectMake(20,400,self.view.frame.size.width-40,40)];


        [_Register setTitle:@"注册" forState:UIControlStateNormal];


        [_Register setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];


        [_Register addTarget:self action:@selector(zhuce) forControlEvents:UIControlEventTouchUpInside];


         _Register.backgroundColor=[UIColor greenColor];


        _Register.layer.cornerRadius=20;


        _Register.layer.masksToBounds=YES;


        [_Register setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

}

    return _Register;

}



在viewDidLoad中写:

//设置页面的背景颜色

    self.view.backgroundColor=[UIColor whiteColor];


    //设置标题

    self.navigationItem.title=@"注册";


    //添加账号文本框

    [self.view addSubview:self.Account];


    //添加密码文本框

    [self.view addSubview:self.passWord];


    //添加注册按钮

    [self.view addSubview:self.Register];



接下里实现点击注册的方法:

//实现注册点击方法

-(void)zhuce

{


    //判断是否为空

    if(self.Account.text.length!=0 && self.passWord.text.length!=0)

    {


        //获取输入框的内容

        NSString* userStr=self.Account.text;


        NSString* passStr=self.passWord.text;


        //将获取的文字  存储到NSUserDefaults

        NSUserDefaults * userDes=[NSUserDefaults standardUserDefaults];


        //存储数据

        [userDes  setObject:userStr  forKey:@"account"];


        [userDes  setObject:passStr  forKey:@"password"];


        //提示用户注册成功

        [self showMBAlertWithMessage:@"注册成功"];


    }

    else

    {

        //提示用户输入内容不能为空

        [self showMBAlertWithMessage:@"输入内容不能为空"];

    }


}

// 设置第三方的显示提示框

-(void)showMBAlertWithMessage:(NSString*)msg {

    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:self.view];

    hud.mode = MBProgressHUDModeText; // 设置文本样式

    hud.labelText= msg;    // 设置显示的提示文本

    hud.removeFromSuperViewOnHide = YES;

    [self.view  addSubview:hud];

    [hud  show:YES];

    [hud  hide:YES afterDelay:3.0];

}

//点击屏幕的空白处收起键盘

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event

{

    [self.view endEditing:YES];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容