您的位置:首页 > 移动开发 > IOS开发

IOS 键盘弹出遮挡输入框使view上移

2016-01-07 22:56 417 查看
有时候输入框在屏幕下方,键盘弹出遮挡了输入框有种盲输入的赶脚,那我们就可以把视图向上移动让它露出来。

首先在viewDidLoad中注册键盘显隐通知

//注册键盘弹出通知

    [[NSNotificationCenter
defaultCenter] addObserver:self
                                            
selector:@selector(keyboardWillShow:)
                                                
name:UIKeyboardWillShowNotification
                                              
object:nil];

    //注册键盘隐藏通知

    [[NSNotificationCenter
defaultCenter] addObserver:self
                                            
selector:@selector(keyboardWillHide:)
                                                
name:UIKeyboardWillHideNotification
                                              
object:nil];

//键盘弹出后将视图向上移动
-(void)keyboardWillShow:(NSNotification *)note
{
   
NSDictionary *info = [note
userInfo];

    CGSize keyboardSize = [[info
objectForKey:UIKeyboardFrameEndUserInfoKey]
CGRectValue].size;

    //目标视图UITextField
   
CGRect frame = passwordTF.frame;
   
int y = frame.origin.y + frame.size.height - (self.view.frame.size.height
- keyboardSize.height);
   
NSTimeInterval animationDuration =
0.30f;

    [UIView
beginAnimations:@"ResizeView"
context:nil];
    [UIView
setAnimationDuration:animationDuration];
   
if(y > 0)
    {

        self.view.frame =
CGRectMake(0, -y,
self.view.frame.size.width,
self.view.frame.size.height);
    }

    [UIView
commitAnimations];
}

//键盘隐藏后将视图恢复到原始状态
-(void)keyboardWillHide:(NSNotification *)note
{
   
NSTimeInterval animationDuration =
0.30f;

    [UIView
beginAnimations:@"ResizeView"
context:nil];
    [UIView
setAnimationDuration:animationDuration];

    self.view.frame =CGRectMake(0,
0, self.view.frame.size.width,
self.view.frame.size.height);

    [UIView
commitAnimations];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: