IOS 键盘遮挡输入框 视图上移解决方案

本文介绍了iOS应用中常见的键盘遮挡输入框问题,并提供了通过监听键盘事件,调整视图布局来优化用户体验的方法。具体包括在`viewDidLoad`中设置键盘事件监听,以及在键盘出现或消失时,通过动画调整输入框的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发的朋友也许会经常遇到点击输入框激活出现键盘而导致输入框被遮住的现象,常用的解决方案有两种:

 

1、键盘出现的时候,将内容页面适当上移

2、键盘出现的时候,漂浮输入框到适当位置 笔者认为 第一种方案比较简单,这里只介绍第一种,第二种类似。

 

一、首先对键盘事件进行监听设置(可写入viewDidLoad中):

//增加监听,当键盘出现或改变时收出消息

[[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*)aNotification { NSDictionary* info = [aNotification userInfo];

//kbSize即為鍵盤尺寸 (有width, height)

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

//得到鍵盤的高度

keyboardhight=kbSize.height;

//将UISCROLLVIEW上移动 hashKeyBoard=YES;

//设置动画的名字

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

//设置动画的间隔时间 [UIView setAnimationDuration:0.20];

//??使用当前正在运行的状态开始下一段动画

[UIView setAnimationBeginsFromCurrentState: YES];

//设置视图移动的位移

self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y - keyboardhight, self.view.frame.size.width, self.view.frame.size.height);

//设置动画结束 [UIView commitAnimations]; }

//下移就不赘述咯

转载于:https://www.cnblogs.com/iosliu/p/4425024.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值