//设置输入框 ---《因为输入框用了get方法,所以第一次调用输入框要用self 调用》;
self.textlab.frame=CGRectMake(, , , );
_textlab.layer.borderColor=[UIColor blueColor].CGColor;
_textlab.layer.borderWidth= 0.5f;
_textlab.backgroundColor=[UIColor colorWithRed:0.830 green:0.801 blue:0.881 alpha:1.000]; //添加输入框到视图
[self.view addSubview:self.textlab]; //监听键盘,键盘出现
[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(keyboardwill:)
name:UIKeyboardWillShowNotification object:nil]; //监听键盘隐藏
[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(keybaordhide:)
name:UIKeyboardWillHideNotification object:nil]; //设置点击手势,当点击空白处,结束编辑,收回键盘
UITapGestureRecognizer *tapp=[[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tapAction:)];
//开启交互
self.view.userInteractionEnabled=YES;
//添加手势到视图
[self.view addGestureRecognizer:tapp];

2、里面方法的实现

 //点击手势方法
-(void)tapAction:(UITapGestureRecognizer *)sender
{
[self.view endEditing:YES];
} //当键盘出现时,调用此方法
-(void)keyboardwill:(NSNotification *)sender
{
//获取键盘高度
NSDictionary *dict=[sender userInfo];
NSValue *value=[dict objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardrect = [value CGRectValue];
int height=keyboardrect.size.height; //如果输入框的高度低于键盘出现后的高度,视图就上升;
if ((_textlab.frame.size.height + _textlab.frame.origin.y)>(self.view.frame.size.height - height))
{
self.view.frame = CGRectMake(, -height, self.view.frame.size.width, self.view.frame.size.height);
}
} //当键盘隐藏时候,视图回到原定
-(void)keybaordhide:(NSNotification *)sender
{
self.view.frame = CGRectMake(, , self.view.frame.size.width, self.view.frame.size.height);
} //输入框的get方法
-(UITextField *)textlab
{
if (_textlab==nil)
{
_textlab=[UITextField new];
}
return _textlab;
}

 防止键盘遮挡方式二;

调用UITextField 输入框的代理方法 <UITextFieldDelegate>

 //开始编辑输入框的时候,软键盘出现,执行此事件
-(void)textFieldDidBeginEditing:(UITextField *)textlab
{
//获取当前输入框的位置信息
CGRect frame = textlab.frame;
//获取键盘底部位置与键盘最高点之间的距离,键盘高度256
int offset = frame.origin.y + frame.size.height - (self.view.frame.size.height - 256.0);
//设置视图上升的时间
NSTimeInterval animaTime = 0.30f;
//字符串随意也行...
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
//添加视图上的上升时间0.3f
[UIView setAnimationDuration:animaTime]; //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示
if(offset > )
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
{
self.view.frame =CGRectMake(, , self.view.frame.size.width, self.view.frame.size.height);
}

iOS 监听键盘高度,输入框上升的更多相关文章

  1. IOS 监听键盘的通知(NSNotificationCenter)

    通知方法: /** * 当键盘改变了frame(位置和尺寸)的时候调用 */ - (void)keyboardWillChangeFrame:(NSNotification *)note { // 设 ...

  2. iOS开发之监听键盘高度的变化

    最近做的项目中,有一个类似微博中的评论转发功能,屏幕底端有一个输入框用textView来做,当textView成为第一响应者的时候它的Y值随着键盘高度的改变而改变,保证textView紧贴着键盘,但又 ...

  3. iOS开发之监听键盘高度的变化 分类: ios技术 2015-04-21 12:04 233人阅读 评论(0) 收藏

    最近做的项目中,有一个类似微博中的评论转发功能,屏幕底端有一个输入框用textView来做,当textView成为第一响应者的时候它的Y值随着键盘高度的改变而改变,保证textView紧贴着键盘,但又 ...

  4. iOS监听键盘事件

    #pragma mark - view life cycle - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter def ...

  5. ios监听键盘弹出 频幕位置改变

  6. iOS 监听键盘变化

    //将要显示键盘 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willShowKeyboard: ...

  7. 修改某个UITextField的键盘的返回键类型以及监听键盘的高度变化,取到键盘动画退出弹出的时间,一起随着键盘顶出来或者压下去,

    1.修改某个UITextField的键盘的返回键类型: [_bottomTextView setReturnKeyType:UIReturnKeyDone]; 1.1.textFied点击return ...

  8. swift 监听键盘弹出的高度

    // 监听键盘通知 NotificationCenter.default.addObserver(self, selector: #selector(ComposeViewController.key ...

  9. 避免scrollview内部控件输入时被键盘遮挡,监听键盘弹起,配合做滚动

    1,监听键盘 2,根据当前键盘弹起高度与控件的底部位置计算滑动距离 3,根据滑动距离在键盘弹起和隐藏是分别设置动画完成滑动     实现: 1,监听键盘使用   #pragma mark - 键盘监听 ...

随机推荐

  1. 优步UBER司机全国各地最新奖励政策汇总(持续更新...)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://didi-uber.com/archiv ...

  2. day2 CSS- 选择器

    1.CSS 语法 css是英文Cascading Style Sheets的缩写,称为层叠样式表 2.css的四种引入方式 1.行内式 行内式是在标记的style属性中设定CSS样式.这种方式没有体现 ...

  3. Android:制作聊天气泡点9图

    步骤一:选择res下的一张图片,右击选择“Create 9-Patch File” 步骤二:确定点9图的名字,只能修改.9.png之前的信息 步骤三:在同目录下会生成刚才创建的点9图,双击打开进行编辑 ...

  4. Mac OS 上 VIM 8.0 安装体验

    VIM 8.0 赶在中秋前发布 The best way to install Vim on Unix is to use the sources. This requires a compiler ...

  5. Mybatis JPA-集成方案+源码

    2018-04-18 update 当前文章已过时,请访问代码仓库查看当前版本wiki. github https://github.com/cnsvili/mybatis-jpa gitee htt ...

  6. Linux 内核3.10.5 专场

    今天本人十分靠谱地下载了linux 内核的3.10.5版本,这个版本是最新的稳定版. 听路飞大虾(哪个路飞?就是那个戴草帽的橡胶小伙,航海很多时候都很空闲的,于是最近他也开始研读linux 内核了.) ...

  7. python-模块详解

    模块: 模块的分类: 第三方模块/扩展模块:没在安装python解释器的时候安装的那些功能 自定义模块:你写的功能如果是一个通用的功能,那你就把它当做一个模块 内置模块:安装python解释器的时候跟 ...

  8. Phaser3游戏三角学应用--一只跟随屏幕点击位置游动的鱼

    fish fish 资源图: fish-136x80.png undersea-bg.png 代码 var config = { type: Phaser.AUTO, parent: 'iFiero' ...

  9. python数据可视化——matplotlib 用户手册入门:pyplot 画图

    参考matplotlib官方指南: https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-intro ...

  10. python编辑购物车

    一.需求分析 输入工资金额,进入购物车,并打印输出商品编号和价格,用户可以通过输入商品编号进行商品选购 余额不足时,打印提示信息 通过q进行退出结算 购物车能够循环购物 二.代码实现 ShoopCar ...