</pre><pre name="code" class="objc">#import "UserLoginViewController.h"
@interface UserLoginViewController ()
@end
@implementation UserLoginViewController
- (void)dealloc
{
[_name release];
_name = nil;
[_passWord release];
_passWord = nil;
[super dealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationController.navigationBarHidden = YES;
[self.view setBackgroundColor:[UIColor colorWithRed:100/255.0 green:0.5 blue:0.8 alpha:1]];
//两个TextField
self.name = [[UITextField alloc] initWithFrame:CGRectMake(30, 180, 260, 35)];
[_name setBackgroundColor:[UIColor whiteColor]];
_name.delegate = self;
_name.placeholder = @"账号";
[_name setClearButtonMode:UITextFieldViewModeWhileEditing];
_name.returnKeyType = UIReturnKeyNext;
[self.view addSubview:_name];
[_name release];
self.passWord = [[UITextField alloc] initWithFrame:CGRectMake(30, 230, 260, 35)];
[_passWord setBackgroundColor:[UIColor whiteColor]];
[_passWord setClearButtonMode:UITextFieldViewModeAlways];
_passWord.placeholder = @"密码";
[_passWord setSecureTextEntry:YES];
[self.view addSubview:_passWord];
[_passWord release];
//创建登录按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:CGRectMake(35, 300, 250, 35)];
[button setBackgroundColor:[UIColor colorWithRed:170/255.0 green:0.3 blue:0.5 alpha:0.7]];
[button setTitle:@"登录" forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button.titleLabel.font = [UIFont systemFontOfSize:27];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
button.showsTouchWhenHighlighted = YES;
button.layer.borderWidth = 2;
button.layer.cornerRadius = 5;
[self.view addSubview:button];
//注册按钮
UIButton *sign = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[sign setFrame:CGRectMake(35, 350, 250, 35)];
[sign setBackgroundColor:[UIColor colorWithRed:170/255.0 green:0.3 blue:0.5 alpha:0.7]];
[sign setTitle:@"注册" forState:UIControlStateNormal];
[sign setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
sign.titleLabel.font = [UIFont systemFontOfSize:27];
[sign setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
sign.showsTouchWhenHighlighted = YES;
sign.layer.borderWidth = 2;
sign.layer.cornerRadius = 5;
[self.view addSubview:sign];
//登录键盘出现与隐藏时候的通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboadWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
//添加手势,点击屏幕其他区域关闭键盘的操作
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
gesture.numberOfTapsRequired = 1;//手势敲击的次数
[self.view addGestureRecognizer:gesture];
}
//键盘出现时候调用的事件
-(void) keyboadWillShow:(NSNotification *)note
{
NSDictionary *info = [note userInfo];
CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;//键盘的frame
CGFloat offY = (self.view.frame.size.height - keyboardSize.height -80) - _name.frame.size.height;//屏幕总高度-键盘高度-UITextField高度
[UIView beginAnimations:nil context:NULL];//此处添加动画,使之变化平滑一点
[UIView setAnimationDuration:0.3];//设置动画时间 秒为单位
_name.frame = CGRectMake(30, offY - 50, 250, 35);//UITextField位置的y坐标移动到offY
_passWord.frame = CGRectMake(30, offY, 250, 35);
[UIView commitAnimations];//开始动画效果
}
//隐藏键盘的点击方法
-(void)hideKeyboard
{
[_name resignFirstResponder];
[_passWord resignFirstResponder];
}
//键盘消失时候调用的事件
-(void)keyboardWillHide:(NSNotification *)note
{
[UIView beginAnimations:nil context:NULL];//此处添加动画,使之变化平滑一点
[UIView setAnimationDuration:0.3];
_name.frame = CGRectMake(30, 180, 260, 35);//UITextField位置复原
_passWord.frame = CGRectMake(30, 230, 260, 35);
[UIView commitAnimations];
}
#pragma mark -
#pragma mark UITextFieldDelegate
//开始编辑:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
return YES;
}
//点击return按钮所做的动作:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];//取消第一响应
return YES;
}
//编辑完成:
- (void)textFieldDidEndEditing:(UITextField *)textField
{
}
-(void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self];//移除观察者
}
输入用户名和密码时,实现输入框整体上移的效果
最新推荐文章于 2021-06-17 10:39:01 发布