iOS学习笔记——视图上移与键盘弹回

来源:互联网 发布:买衣服淘宝真的不能买 编辑:程序博客网 时间:2024/06/03 19:24

点击return收回键盘

- (BOOL)textFieldShouldReturn:(UITextField *)textField{    [textField resignFirstResponder];    return YES;}

在UITextField开始编辑前和编辑后调用的方法里添加移动视图的方法
//***更改frame的值***////在UITextField 编辑之前调用方法- (void)textFieldDidBeginEditing:(UITextField *)textField{    //设置动画的名字    [UIView beginAnimations:@"Animation" context:nil];    //设置动画的间隔时间    [UIView setAnimationDuration:0.20];    //??使用当前正在运行的状态开始下一段动画    [UIView setAnimationBeginsFromCurrentState: YES];    //设置视图移动的位移    self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y - 100, self.view.frame.size.width, self.view.frame.size.height);    //设置动画结束    [UIView commitAnimations];}//在UITextField 编辑完成调用方法- (void)textFieldDidEndEditing:(UITextField *)textField{    //设置动画的名字    [UIView beginAnimations:@"Animation" context:nil];    //设置动画的间隔时间    [UIView setAnimationDuration:0.20];    //??使用当前正在运行的状态开始下一段动画    [UIView setAnimationBeginsFromCurrentState: YES];    //设置视图移动的位移    self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + 100, self.view.frame.size.width, self.view.frame.size.height);    //设置动画结束    [UIView commitAnimations];

新创建一个视图移动的方法,两次都调用,并判断是否做出相应移动。

//在UITextField 编辑之前调用方法- (void)textFieldDidBeginEditing:(UITextField *)textField{    [self animateTextField: textField up: YES];    }//在UITextField 编辑完成调用方法- (void)textFieldDidEndEditing:(UITextField *)textField{    [self animateTextField: textField up: NO];}//视图上移的方法- (void) animateTextField: (UITextField *) textField up: (BOOL) up{    //设置视图上移的距离,单位像素    const int movementDistance = 100; // tweak as needed    //三目运算,判定是否需要上移视图或者不变    int movement = (up ? -movementDistance : movementDistance);    //设置动画的名字    [UIView beginAnimations: @"Animation" context: nil];    //设置动画的开始移动位置    [UIView setAnimationBeginsFromCurrentState: YES];    //设置动画的间隔时间    [UIView setAnimationDuration: 0.20];    //设置视图移动的位移    self.view.frame = CGRectOffset(self.view.frame, 0, movement);    //设置动画结束    [UIView commitAnimations];    

使键盘弹回的方法,输入触摸的方法:


//点击屏幕,让键盘弹回- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{    [self.view endEditing:YES];}


0 0
原创粉丝点击