UI_2
2016-01-15 22:02
344 查看
#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]initWith
c5a5
Title:@"密码提示"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中输入的值,所以label和textField需要声明在.h文件中,这样,外部可以调用。
@property (nonatomic,strong)UILabel *leftLabel;//自定义视图左侧的label
@property (nonatomic,retain)UITextField *rightTextField;//自定义视图右侧的textField
@end
==================
#import "LTView.h"
@implementation LTView
//因为labrl和TextField要根据LTView的大小来布局,所以我们需要拿到LTView的frame,所以需要重写LTView的初始化方法。
-(instancetype)initWithFrame:(CGRect)frame{
self = [superinitWithFrame:frame];
if (self) {
//在初始化方法中,为LTView添加label和
textField
//初始化label。并且添加到LTView。
label和 textField的宽度比例大约为1:2
//得到整体宽度
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;
}
#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]initWith
c5a5
Title:@"密码提示"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中输入的值,所以label和textField需要声明在.h文件中,这样,外部可以调用。
@property (nonatomic,strong)UILabel *leftLabel;//自定义视图左侧的label
@property (nonatomic,retain)UITextField *rightTextField;//自定义视图右侧的textField
@end
==================
#import "LTView.h"
@implementation LTView
//因为labrl和TextField要根据LTView的大小来布局,所以我们需要拿到LTView的frame,所以需要重写LTView的初始化方法。
-(instancetype)initWithFrame:(CGRect)frame{
self = [superinitWithFrame:frame];
if (self) {
//在初始化方法中,为LTView添加label和
textField
//初始化label。并且添加到LTView。
label和 textField的宽度比例大约为1:2
//得到整体宽度
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;
}
相关文章推荐
- Android Manifest 用法
- GUI - Web前端开发框架
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- 100 个最佳 Ubuntu 应用(中)
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- 24 个必备的 Linux 应用程序
- 注册表趣味应用小集
- 远程控制技术的应用
- 跨越fso、wsh、 application写文件
- IIS 错误 Server Application Error 详细解决方法
- 路由器访问列表的应用
- xDSL技术及其应用
- asp 内置对象 Application 详解
- IIS运行错误 Server Application Error 错误代码 Error: 8004的解决方法
- 解决IIS的Server Application Error的2种方法
- 基于XML的桌面应用
- SQL Server 2008 R2 应用及多服务器管理
- 为Yahoo! UI Extensions Grid增加内置的可编辑器
- Cocos2d-x UI开发之文本类使用实例
- winform异型不规则界面设计的实现方法