UI_2

#import "AppDelegate.h"

#import "LTView.h"


#define kLabel_x 40

#define kLabel_Width 100

#define kHeight 30


@interface AppDelegate ()


@end


@implementation AppDelegate


//UIActionSheet  从下部弹出来的警示框

//警示框   UIAlertView    中间弹出




//使用LTView来创建登录界面

-(void)createLoginViewByLTView{

     //首先创建用户名和密码输入的控件

       //得到整个屏幕的宽度

    float screenWidth = CGRectGetWidth(self.window.frame);

      //得到ltView的宽度  ltView整体居中

    float ltVWidth = screenWidth-40*2;

      //label显示内容的数组

    NSArray *labelTextArray = [NSArrayarrayWithObjects:@"用户名",@"密码",nil];

      //输入框占位字符数组

    NSArray *placeHolderArray = [NSArrayarrayWithObjects:@"请输入用户名",@"输入密码",nil];

    for (int i =0 ; i<2; i++) {

        LTView *ltView = [[LTViewalloc]initWithFrame:CGRectMake(40,100+i*(40+20), ltVWidth,40)];

        ltView.leftLabel.text = labelTextArray[i];

        ltView.rightTextField.placeholder = placeHolderArray[i];

        [self.windowaddSubview:ltView];

    }


}





//"注册"按钮的点击方法

-(void)jumpToRegisterViewAction:(UIButton *)sender{


}

//"登录"按钮的点击方法

-(void)loginAction:(UIButton *)sender{

    //得到用户名、密码的textField

    //需要得到这两个输入框的父视图,父视图通过tag值得到它们

    UIView *loginView = [sender superview];

    UITextField *userNameTextField = (UITextField *)[loginViewviewWithTag:1000];

    UITextField *pwdTextField = (UITextField *)[loginViewviewWithTag:1001];

    //判断用户名、密码是否输入

    NSString *userNameStr = userNameTextField.text;

    NSString *pwdStr = pwdTextField.text;

    //如果用户没有输入内容

    if (userNameStr ==nil || [userNameStrisEqualToString:@"<null>"]||(userNameStr.length ==0)) {

        NSLog(@"请输入用户名");

    //警示框

        UIAlertView *alertView = [[UIAlertViewalloc]initWithTitle:@"友情提示"message:@"用户名不能为空"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil,nil];

        //显示警示框

        [alertView show];

    }else if(pwdStr ==nil || [userNameStrisEqualToString:@"<null>"]||(pwdStr.length ==0)) {

        NSLog(@"请输入密码");

     //警示框

        UIAlertView *alertView1 = [[UIAlertViewalloc]initWithTitle:@"密码提示"message:@"密码错误!"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil,nil];

        [alertView1 show];

        

    }else if ([userNameStrisEqualToString:@"zhanghan"] &&[pwdStrisEqualToString:@"123456"]){

        NSLog(@"登录成功");

    }else{

        NSLog(@"用户名或者密码错误");

    }

    

}

//"找回密码"按钮的点击方法

-(void)jumpToFindPwdViewAction:(UIButton *)sender{

    

}




//创建一个登录界面

-(void)creatLogView{

  //创建登录界面的背景页面

    UIView *logView = [[UIViewalloc]initWithFrame:[UIScreenmainScreen].bounds];

    

    //页面顶部标题

    UILabel *titleLabel = [[UILabelalloc]initWithFrame:CGRectMake(0,20, CGRectGetWidth(logView.frame),40)];

    //设置标题

    titleLabel.text = @"登录";

    //设置文字居中

    titleLabel.textAlignment =NSTextAlignmentCenter;

    //给文字设置背景颜色

    [titleLabel setBackgroundColor:[UIColorgrayColor]];

    titleLabel.textColor = [UIColorredColor];

    

    [logView addSubview: titleLabel];

    

    

    //设置背景颜色

    [logView setBackgroundColor:[UIColorwhiteColor]];

    

    NSArray *labelTextArray = [NSArrayarrayWithObjects:@"用户名",@"密码",nil];

    NSArray *textArray = [NSArrayarrayWithObjects:@"请输入用户名",@"请输入密码",nil];

    

  //由于所有的控件的位置都是有规律的,所以我们才可以通过for循环创建

    for (int i =0; i<2; i++) {

        //每循环一次,创建一行控件,一行控件包括 label textfiled

        UILabel *myLabel =[[UILabelalloc]initWithFrame:CGRectMake(kLabel_x,200+i*50,kLabel_Width,kHeight)];

        myLabel.text = labelTextArray[i];

        

        UITextField *myTextField = [[UITextFieldalloc]initWithFrame:CGRectMake(kLabel_x+kLabel_Width+20,200+i*50,200, kHeight)];

        myTextField.tag = 1000+i;

        myTextField.placeholder = textArray[i];

        

        //如果是密码输入框,文字样式不能是明文输入,需要设置为密码样式

        if (i == 1) {

            myTextField.secureTextEntry = YES;

        }

        //将创建好的控件添加到loginView上面

        [logView addSubview:myLabel];

        [logView addSubview:myTextField];

    }

  //"注册"按钮

    UIButton *registerBtn = [UIButtonbuttonWithType:UIButtonTypeSystem];

      //设置标题

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

      //设置frame

    [registerBtn setFrame:CGRectMake(40,300, 80, 40)];

      //设置点击事件

    [registerBtn addTarget:selfaction:@selector(jumpToRegisterViewAction:)forControlEvents:UIControlEventTouchUpInside];

      //添加注册按钮

    [logView addSubview:registerBtn];


 

  //"登录"按钮

    UIButton *loginBtn = [UIButtonbuttonWithType:UIButtonTypeSystem];

    //添加标题

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

    //设置frame

    [loginBtn setFrame:CGRectMake(140,300, 80, 40)];

    //添加点击事件

    [loginBtn addTarget:selfaction:@selector(loginAction:)forControlEvents:UIControlEventTouchUpInside];

    //添加登录按钮

    [logView addSubview:loginBtn];

    

    

   //"找回密码"按钮

    UIButton *findPWdBtn = [UIButtonbuttonWithType:UIButtonTypeSystem];

    //添加标题

    [findPWdBtn setTitle:@"找回密码"forState:UIControlStateNormal];

    //设置frame

    findPWdBtn.frame = CGRectMake(240, 300, 80, 40);

    //添加点击事件

    [findPWdBtn addTarget:selfaction:@selector(jumpToFindPwdViewAction:)forControlEvents:UIControlEventTouchUpInside];

    //添加找回密码按钮

    [logView addSubview:findPWdBtn];

    

        //logView添加到window上面

//    [self.window addSubview:logView];

}





- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]];

  

    

    //创建登录界面(调用)

    [selfcreatLogView];

    

    

    [selfcreateLoginViewByLTView];

    

    

    

   

    

    self.window.backgroundColor = [UIColorwhiteColor];

    [self.windowmakeKeyAndVisible];

    return YES;

}





=================

#import <UIKit/UIKit.h>


@interface LTView : UIView

//因为外部需要给label赋值,并且可以在外部得到textField中输入的值,所以labeltextField需要声明在.h文件中,这样,外部可以调用。

@property (nonatomic,strong)UILabel *leftLabel;//自定义视图左侧的label

@property (nonatomic,retain)UITextField *rightTextField;//自定义视图右侧的textField


@end






==================

#import "LTView.h"


@implementation LTView


//因为labrlTextField要根据LTView的大小来布局,所以我们需要拿到LTViewframe,所以需要重写LTView的初始化方法。

-(instancetype)initWithFrame:(CGRect)frame{

    self = [superinitWithFrame:frame];

    if (self) {

     //在初始化方法中,为LTView添加label textField

        //初始化label。并且添加到LTView  label textField的宽度比例大约为12

           //得到整体宽度

        float sumWidth = CGRectGetWidth(frame);

           //得到label的宽度

        float labelWidth = (sumWidth-20)/3;

        _leftLabel = [[UILabelalloc]initWithFrame:CGRectMake(0,0, labelWidth,CGRectGetHeight(frame))];

        [self addSubview:_leftLabel];

       //初始化textField并添加到LTView

        _rightTextField =[[UITextFieldalloc]initWithFrame:CGRectMake(labelWidth +20, 0,labelWidth *2,CGRectGetHeight(frame))];

        [selfaddSubview:_rightTextField];

    }

        return self;

}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章