博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS-当输入框被键盘遮挡时让整个view上移
阅读量:4879 次
发布时间:2019-06-11

本文共 1819 字,大约阅读时间需要 6 分钟。

    • 注册键盘通知
    #pragma mark - 键盘通知- (void)addNoticeForKeyboard {    //注册键盘出现的通知    [[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 *)notification {    //获取键盘高度,在不同设备上,以及中英文下是不同的    CGFloat kbHeight = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;    //计算出键盘顶端到inputTextView panel底端的距离(加上自定义的缓冲距离INTERVAL_KEYBOARD)    CGFloat offset = (textView.frame.origin.y+textView.frame.size.height+INTERVAL_KEYBOARD) - (self.view.frame.size.height - kbHeight);    // 取得键盘的动画时间,这样可以在视图上移的时候更连贯    double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];    //将视图上移计算好的偏移    if(offset > 0) {        [UIView animateWithDuration:duration animations:^{            self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height);        }];    }}///键盘消失事件- (void) keyboardWillHide:(NSNotification *)notify {    // 键盘动画时间    double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];    //视图下沉恢复原状    [UIView animateWithDuration:duration animations:^{        self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);    }];}
    作者:奋斗的蜗牛
    链接:http://www.jianshu.com/p/4e235e952b0c
    來源:简书

转载于:https://www.cnblogs.com/lanmaokomi/p/7595981.html

你可能感兴趣的文章
Unity 动画系统 Animation和Animator等常用类
查看>>
Spring Boot 传参方式
查看>>
Copy a Table Included Data
查看>>
结构体指针做函数参数
查看>>
AppStore加急审核申请流程
查看>>
android之利用SQLite数据库实现登陆和注册
查看>>
mac保存远程链接
查看>>
eclipse对离线python的环境搭建
查看>>
实践小节
查看>>
netstate 参数
查看>>
某考试T1 game
查看>>
c# 播放音乐
查看>>
mysql备份数据库
查看>>
28-Ubuntu-远程管理命令-02-查看网卡的配置信息
查看>>
sublime text3---Emmet:HTML/CSS代码快速编写神器
查看>>
Android:AysncTask异步加载
查看>>
要找工作啦
查看>>
JSON for java入门总结
查看>>
OpenCV imshow无法显示图片
查看>>
js线程&定时器
查看>>