iOS键盘通知弹框使用小结

news/2024/7/20 22:04:47 标签: ios

项目开发中文本框输入的时候经常会用到键盘弹框遮挡的问题。解决办法就是根据底部键盘弹出的高度动态的改变对应view的位置。这里以多行文本框输入为例,效果图如下。

  

  //第一步,注册监听键盘通知

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

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

  //第二步,根据通知调整对应view的位置

  

#pragma mark - 键盘的通知

- (void)keyboardShow:(NSNotification *)notify

{

 //获取键盘弹框的位置信息

    CGRect keyBoardRect = [notify.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

    CGFloat deltaY = keyBoardRect.size.height/2;

 //添加动画效果,向上偏移键盘高度的二分之一

    [UIView animateWithDuration:[notify.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{

        self.bottomView.transform = CGAffineTransformMakeTranslation(0, -deltaY);

    }];

}

- (void)keyboardHide:(NSNotification *)note

{

 //位置还原

    [UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{

        self.bottomView.transform = CGAffineTransformIdentity;

    } completion:^(BOOL finished){

    }];

}

  //第三步,不用的时候移除掉通知对象 

  

-(void)dealloc{

    [[NSNotificationCenter defaultCenter]removeObserver:self];

}

 


http://www.niftyadmin.cn/n/10660.html

相关文章

使用python画柱状图(matplotlib.pyplot)-- 你想要的设置这张图基本都包括

本人写论文时画的图,总结一下方法: 安心看下去,你应该就可以画出一个好看的柱状图,基本上需要的设置都有哦!!! 目录 1 首先引入画图所需要的包Matplotlib 2 Matplotlib Pyplot 3 画柱状图 …

LQ0221 逆波兰表达式【程序填空】

题目来源:蓝桥杯2013初赛 C A组F题 题目描述 本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一&#xff0…

【附源码】计算机毕业设计JAVA研究生入学考试备考辅助系统

【附源码】计算机毕业设计JAVA研究生入学考试备考辅助系统 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术:…

oracle进行getshell

(168条消息) Oracle注入 - 命令执行&Shell反弹_PD_3569的博客-CSDN博客 (168条消息) Oracle 注入不能出网时获得一个交互式 Shell_pwn2019的博客-CSDN博客 (168条消息) Oracle的getshell命令执行的实战(有版本限制)_J0hnson666的博客-CSDN博客_oracle注入getshell (168条…

零入门容器云网络-4:基于DNAT技术使得外网可以访问本宿主机上veth-pair链接的内部网络

已发表的技术专栏(订阅即可观看所有专栏) 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  gr…

嵌入式分享合集108

一、PLC串口通讯的基本知识 这几天弄plc都要神经了 尤其西门子的 太烦了 s7200cn s7200smart s1200 编程软件都不一样~~服 , 然后接线也很烦 好了 正题 电气作业人员在使用PLC的时候会接触到很多的通讯协议以及通讯接口 什么是串口通讯? 串口通讯的使…

# Leetcode刷题day7|454.四数相加II, 383. 赎金信,15. 三数之和 ,18四数之和

文章目录一、四数相加II思路注意AC代码二、赎金信思路AC代码三、三数之和思路AC代码四、四数之和思路AC代码五、总结一、四数相加II 思路 不难想到,本题可以使用暴力解法,直接四个for循环嵌套。如果和为0,ret。不过这里需要注意四个for循环…

【FreeSwitch开发实践】外呼线路电话收不到回铃音问题的解决

✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:FreeSwitch开发实践 ✨ 专栏介绍:主要介绍博主在实际项目中使用FreeSwitch开发外呼类项目的一些经验心得,主要涉及FreeSwitch的基本安装编译、基本配置、ESL、WSS、录音、自定义模块、m…