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

监听键盘的弹出与隐藏(界面跟随键盘一起上下移动)

2016-01-17 22:22 411 查看
今天说一下点击texeField时,让界面跟着键盘一起上下移动的方法步骤

(本人原创博客代码全部为自己手敲,然后复制过来给大家看)

1.让控制器监听键盘frame发生改变的通知 :UIKeyboardWillChangeFrameNotification

 [[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(keyboardWillChangeFrame:)name:UIKeyboardWillChangeFrameNotification object:nil];

2.一旦键盘的frame发生改变,就执行一个自定义的方法,这个方法要有一个“通知”的参数

(NSNotification *)note

3.方法如下:

// 收到键盘frame发生变化的通知之后都会来调用此方法

- (void)keyboardWillChangeFrame:(NSNotification *)note
{

 // 取出系统传过的键盘信息,是一个字典

    NSDictionary *keyboardDict = note.userInfo;

    // 字典里有keyboard的取出键盘变化之后的frame

   CGRect keyboardFrame = [keyboardDict[UIKeyboardFrameEndUserInfoKey] CGRectValue];

    

    //键盘怎么移动,文本框就怎么移动,键盘移动多少,文本框就移动多少,文本框时时刻刻跟着键盘走

    // 用键盘的y - 控制器view的高 就得到控制器view要移动的位置

    // 弹出后键盘的Y = 451 - 667 = -216

    // 隐藏后键盘的y = 667 - 667 = 0;

    CGFloat translationY = keyboardFrame.origin.y -self.view.bounds.size.height;

    // 移动控制器view

    //有了键盘的纵坐标 就可以动态控制

    self.view.transform = CGAffineTransformMakeTranslation(0,
translationY);

 }

4.一旦拖动屏幕就收起键盘

/** 将要开始拖拽屏幕时来调用此方法 */

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{

    [self.view endEditing:YES];// 退出键盘

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