简略登陆页面的创建(页面跳转.键盘回收.实现换行.清除textField中的文字)

简单登陆页面的创建(页面跳转.键盘回收.实现换行.清除textField中的文字)

在这里实现了以下几种功能:

1.点击按钮实现页面的跳转
2.点击空白处实现键盘回收
3.点击return实现换行
4.添加清除符号实现清除textField中的文字
5.点击登陆按钮,实现UIAlert功能,弹出信息
6.实现视图上下移动

效果图

简略登陆页面的创建(页面跳转.键盘回收.实现换行.清除textField中的文字)
简略登陆页面的创建(页面跳转.键盘回收.实现换行.清除textField中的文字)

以下是源代码,各处有注释:

第一步: 在AppDelegate.m文件中 建立根视图

// 创建一个登陆页面
self.landVC =[[LandingViewController alloc] init];

// 给window设置根视图
_window.rootViewController =_landVC;
[_landVC release];

第二步:在根视图LandingViewController.m文件中建立登陆页面:

#import "LandingViewController.h"
#import "PasswordViewController.h"
#import "RegistViewController.h"
#import "messageViewController.h"
@interface LandingViewController ()<UITextFieldDelegate,UIAlertViewDelegate>
@property(nonatomic ,retain)PasswordViewController *passWordVC;
@property(nonatomic, retain)UIAlertView *alertView;
@property(nonatomic, retain)UIAlertView *succeedAlertView;
@end


@implementation LandingViewController 
-(void)dealloc{
    [_alertView release];
    [super dealloc];
}


-(void)loadView{
    // super调用父类
    [super loadView];
    NSLog(@"%s", __FUNCTION__);
}



- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // 创建两个textfield
    for (int i =1; i<3; i++) {
        UITextField *textFieldi =[[UITextField alloc] initWithFrame:CGRectMake(150, 100+70*i, 150, 35)];
        textFieldi.delegate =self;
        textFieldi.layer.borderWidth =2;
        textFieldi.layer.cornerRadius =10;
        [self.view addSubview:textFieldi];
        textFieldi.clearButtonMode=UITextFieldViewModeAlways;
        textFieldi.tag =1010+i;
        [textFieldi release];
    }

    ((UITextField *)[self.view viewWithTag:1012]).secureTextEntry =YES;

    // 两个label
    for (int i=1; i < 3 ; i++){
        UILabel *labeli =[[UILabel alloc] initWithFrame:CGRectMake(80, 100+70*i, 100, 35)];
        [self.view addSubview:labeli];
        labeli.tag =1000+i;
        [labeli release];
    }

    UILabel *tempLabel =[UIButton buttonWithType:UIButtonTypeSystem];
    tempLabel =(UILabel *)[self.view viewWithTag:1001];
    tempLabel.text =@"用户名";
    UILabel *temp1Label =[UIButton buttonWithType:UIButtonTypeSystem];
    temp1Label =(UILabel *)[self.view viewWithTag:1002];
    temp1Label.text =@"密码";


    // 创建三个button

    for(int i =0; i<3 ;i++){
        UIButton *buttoni=[UIButton buttonWithType:UIButtonTypeSystem];
        buttoni.frame=CGRectMake(50+100*i, 320, 80, 30);
        [buttoni setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
        [self.view addSubview:buttoni];
        buttoni.tag =1003+i;

    }

    // 登陆按钮
    UIButton *landButton =(UIButton *)[self.view viewWithTag:1003];
    [landButton setTitle:@"登陆" forState:UIControlStateNormal];
    [landButton addTarget:self action:@selector(landClick:) forControlEvents:UIControlEventTouchUpInside];


    // 找回密码 按钮
    UIButton *passWordButton =(UIButton *)[self.view viewWithTag:1004];
    [passWordButton setTitle:@"找回密码" forState:UIControlStateNormal];
       [passWordButton addTarget:self action:@selector(passWordclick:) forControlEvents:UIControlEventTouchUpInside];

    // 注册按钮
    UIButton *registButton =(UIButton *)[self.view viewWithTag:1005];
    [registButton setTitle:@"注册" forState:UIControlStateNormal];
    [registButton addTarget:self action:@selector(registClick:) forControlEvents:UIControlEventTouchUpInside];

    // 显示密码按钮
    UIButton *showPassWordButton =[UIButton buttonWithType:UIButtonTypeCustom];
    showPassWordButton.frame =CGRectMake(110, 290, 20, 20);
    [self.view addSubview:showPassWordButton];
    showPassWordButton.tag =100;
    [showPassWordButton setBackgroundImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal];
    [showPassWordButton addTarget:self action:@selector(showPassWord:) forControlEvents:UIControlEventTouchUpInside];


    UILabel *showPassWord=[[UILabel alloc] initWithFrame:CGRectMake(150, 290, 80, 20)];
    showPassWord.text =@"显示密码";
    [self.view addSubview:showPassWord];
    [showPassWord release];


      // 添加两个 alertView

    self.alertView =[[UIAlertView alloc] initWithTitle:@"对不起" message:@"账号或密码输入错误" delegate:self cancelButtonTitle:@"重新输入" otherButtonTitles:@"找回密码", nil];
    self.alertView.tag =1020;
//    self.alertView.delegate = self;

    [self.alertView release];

    self.succeedAlertView =[[UIAlertView alloc ] initWithTitle:@"登陆成功" message:nil delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"返回", nil];
    self.succeedAlertView.tag =1021;
//    self.succeedAlertView.delegate = self;
    [self.succeedAlertView release];

}

-(void)showPassWord:(UIButton *)button{
    UIButton *but=(UIButton *)[self.view viewWithTag:100];
    if (but.selected==1) {
        [but setBackgroundImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal];
    }else{
        [but setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
    }
    but.selected ^=1;
    ((UITextField *)[self.view viewWithTag:1012]).secureTextEntry ^=1;

}

#pragma mark 点击空白处回收键盘
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    [(UITextField *)[self.view viewWithTag:1012] resignFirstResponder];
    [(UITextField *)[self.view viewWithTag:1011] resignFirstResponder];

}





//#pragma mark 键盘回收
//
//-(BOOL)textFieldShouldReturn:(UITextField *)textField{
//    [textField resignFirstResponder];
//    return YES;
//}

#pragma mark 视图上下移动
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    if (textField.frame.origin.y>self.view.frame.size.height/2) {
        CGFloat height =textField.frame.origin.y -self.view.frame.size.height/2;
        self.view.center =CGPointMake(self.view.center.x, self.view.center.y-height);
    }
        return YES;
}

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    if (textField.frame.origin.y>self.view.frame.size.height/2) {
        CGFloat height =textField.frame.origin.y -self.view.frame.size.height/2;
        self.view.center =CGPointMake(self.view.center.x, self.view.center.y-height);
    }
    return YES;
}

#pragma mark 点击找回密码按钮 实现跳页
-(void)passWordclick:(UIButton *)button{
    //创建一个PassWordViewController
    PasswordViewController *passWordVC=[[PasswordViewController alloc] init];
    // 设置动画效果
    [passWordVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    // 进行跳转
    [self presentViewController:passWordVC animated:YES completion:^{

    }];
    [passWordVC release];

}
#pragma mark 点击注册按钮 实现跳页
-(void)registClick:(UIButton *)button{
    // 创建一个RegistViewController
    RegistViewController *registVC=[[RegistViewController alloc] init];
    // 设置动画效果
    [registVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    // 进行跳转
    [self presentViewController:registVC animated:YES completion:^{

    }];
    [registVC release];

}
#pragma mark 点击登陆按钮判断是否正确
-(void)landClick:(UIButton *)button{

    if ([((UITextField *)[self.view viewWithTag:1011]).text isEqualToString: @"123"]&&[((UITextField *)[self.view viewWithTag:1012]).text isEqualToString:@"123"]) {

        [self.succeedAlertView show];
    }else{

        [self.alertView show];
    }
}

#pragma mark 实现判断密码是否正确的通知
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (alertView.tag == 1020) {
        if(buttonIndex ==1){
            PasswordViewController *passWordVC=[[PasswordViewController alloc] init];
            // 设置动画效果
            [passWordVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
            // 进行跳转
            [self presentViewController:passWordVC animated:YES completion:^{

            }];
            [passWordVC release];

        }

    }else if(alertView.tag ==1021){
        if (buttonIndex ==0) {
            messageViewController *messVC=[[messageViewController alloc] init];
            [messVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
            [self presentViewController:messVC animated:YES completion:^{

            }];
            [messVC release];
        }
    }
}

第三步:建立注册视图控制器 创建方法

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.


    //label
    for (int i =0; i < 5; i++) {
        UILabel *labeli=[[UILabel alloc] initWithFrame:CGRectMake(80, 120+65*i, 100, 30)];
        [self.view addSubview:labeli];
        labeli.tag =1000+i;
        [labeli release];

    }

    UILabel *nameLabel=(UILabel *)[self.view viewWithTag:1000];
    nameLabel.text =@"用户名";
    UILabel *passwordLabel =(UILabel *)[self.view viewWithTag:1001];
    passwordLabel.text =@"密码";
    UILabel *rePasswordLabel =(UILabel *)[self.view viewWithTag:1002];
    rePasswordLabel.text =@"确认密码";
    UILabel *phoneNumLabel =(UILabel *)[self.view viewWithTag:1003];
    phoneNumLabel.text =@"手机号";
    UILabel *emailLabel =(UILabel *)[self.view viewWithTag:1004];
    emailLabel.text =@"邮箱";


    // textfield
    for(int i =0;i<5; i++) {
        UITextField *textFieldi=[[UITextField alloc] initWithFrame:CGRectMake(180, 120+65*i, 130, 30)];
        textFieldi.layer.borderWidth=1;
        textFieldi.layer.cornerRadius=10;
        [self.view addSubview:textFieldi];
        textFieldi.delegate =self;
        textFieldi.clearButtonMode=UITextFieldViewModeAlways;
        textFieldi.tag =1010+i;
        [textFieldi release];
    }

    UITextField *nameTextField=(UITextField *)[self.view viewWithTag:1010];
    nameTextField.placeholder=@" 请输入用户名";

    UITextField *passwordTextField=(UITextField *)[self.view viewWithTag:1011];
    passwordTextField.placeholder=@" 请输入密码";

    UITextField *rePasswordTextField=(UITextField *)[self.view viewWithTag:1012];
    rePasswordTextField.placeholder=@" 再次输入密码";
    UITextField *phoneNumTextField=(UITextField *)[self.view viewWithTag:1013];
    phoneNumTextField.placeholder=@" 请输入联系方式";
    UITextField *emailTextField=(UITextField *)[self.view viewWithTag:1014];
    emailTextField.placeholder=@" 请输入邮箱"; 
    // 注册按钮
    UIButton *registButton =[UIButton buttonWithType:UIButtonTypeSystem];
    registButton.frame=CGRectMake(120,430 , 60, 30);
    [registButton setTitle:@"注册" forState:UIControlStateNormal];
    [self.view addSubview:registButton];
    registButton.tag =2000;
//    UIAlertView *alertView=[[UIAlertView alloc] init];
//    [alertView initWithTitle:@"恭喜" message:@"注册成功" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
//    [registButton addTarget:self action:@selector(registClick:) forControlEvents:UIControlEventTouchUpInside];
//    
 // 取消按钮
    UIButton *cancelButton=[UIButton buttonWithType:UIButtonTypeSystem];
    cancelButton.frame =CGRectMake(200, 430, 60, 30);
    [cancelButton setTitle:@"取消" forState:UIControlStateNormal];
    [self.view addSubview:cancelButton];
    [cancelButton addTarget:self action:@selector(cancelClick:) forControlEvents:UIControlEventTouchUpInside];


    // alertView
    self.alertView=[[UIAlertView alloc] init];
    self.alertView =[[UIAlertView alloc ] initWithTitle:@"恭喜" message:@"注册成功"  delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"返回", nil];
     [registButton addTarget:self action:@selector(registClick:) forControlEvents:UIControlEventTouchUpInside];

}

#pragma mark 点击空白处回收键盘
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//    for (int i =0; i<5; i++) {
//        [(UITextField *)[self.view viewWithTag:(1010+i)] resignFirstResponder];
//    }
    [self.view endEditing:YES];
}

版权声明:本文为博主原创文章,未经博主允许不得转载。