关闭

ios 键盘遮挡输入框解决方法

标签: ios开发
135人阅读 评论(0) 收藏 举报
分类:

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    //注册键盘弹起与收起通知

    [[NSNotificationCenter defaultCenteraddObserver:self

                                             selector:@selector(keyboardWillShow:)

                                                 name:UIKeyboardWillShowNotification

                                               object:nil];

    

}

-(void)keyboardWillShow:(NSNotification *)note

{

    NSDictionary *info = [note userInfo];

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

    _keyBoardHeight = keyboardSize.height;

    

    

    CGRect frame = _userNameTextfield.frame;

    int offset = frame.origin.y + 32 - (self.view.frame.size.height -_keyBoardHeight);

    NSTimeInterval animationDuration = 0.30f;

    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];

    [UIView setAnimationDuration:animationDuration];

        //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示

    if(offset > 0)

        self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width,self.view.frame.size.height);

    [UIView commitAnimations];

}  

//当用户按下return键或者按回车键,keyboard消失

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

    [textField resignFirstResponder];

    return YES;

}

//输入框编辑完成以后,将视图恢复到原始状态

-(void)textFieldDidEndEditing:(UITextField *)textField

{

    NSTimeInterval animationDuration = 0.30f;

    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];

    [UIView setAnimationDuration:animationDuration];

    self.view.frame =CGRectMake(00self.view.frame.size.widthself.view.frame.size.height);

    [UIView commitAnimations];

}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14344次
    • 积分:279
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条
    文章分类