ios键盘输入屏幕上移的效果
来源:互联网 发布:手机版fc2无法接入网络 编辑:程序博客网 时间:2024/06/05 10:48
在开发中会发现,在iOS开发中经常是会遇到一个键盘遮挡屏幕的一个情况出现,就比如当你输入账号密码的时候,会出现遮挡了一半的位置,甚至是更多的位置最关键的是会遮挡了下面的一些按钮,导致按钮事件也触发不了,目前解决的办法就是在当输入这些消息的时候如何让整个屏幕上移一个键盘的位置,又或者是移动到指定的一些位置也是可以的。
首先一般输入的话都用的是UITextField,所以要监听用户什么时候开始输入和什么时候结束输入,直接设置代理代理就行了。
要遵循UITextFieldDelegate协议。
//遵循协议
@interfaceViewController()<UITextFieldDelegate>
//设置相关的属性
@property(nonatomic,strong)UITextField*UITF;
//设置代理
UITF.delegate=self;
//代理的方法
//键盘弹出时屏幕上移
-(void)textFieldDidBeginEditing:(UITextField*)textField
{
//假如多个输入,比如注册和登录,这就是可以根据不同的输入框来上移不同的位置,从而使得更加具有人性化。
//键盘高度216
//滑动效果(动画显示)
NSTimeIntervalanimationDuration=0.30f;
[UIViewbeginAnimations:@"ResizeForKeyboard"context:nil];
[UIViewsetAnimationDuration:animationDuration];
//表示将视图的Y坐标向上移动,以使下面腾出地方用于软键盘的显示
self.view.frame=CGRectMake(0.0f,-100.0f/*屏幕上移的高度,可以自己定*/,self.view.frame.size.width,self.view.frame.size.height);
[UIViewcommitAnimations];
}
//取消第一响应,意思是输入完毕,屏幕恢复原状
-(void)textFieldDidEndEditing:(UITextField*)textField
{
//滑动的一个效果
NSTimeIntervalanimationDuration=0.30f;
[UIViewbeginAnimations:@"ResizeForKeyboard"context:nil];
[UIViewsetAnimationDuration:animationDuration];
//恢复屏幕的代码
self.view.frame=CGRectMake(0.0f,0.0f,self.view.frame.size.width,self.view.frame.size.height);
[UIViewcommitAnimations];
}
接下里说一下如何取消第一响应。
实际上一般都是在当前View上添加一个点击手势就可以了,这样的话就可以取消键盘的第一响应,它的弊端就是,比如:因为注册登录页面当屏幕上移时,就会显示注册或登录的页面,如果添加点击手势的话那么就会覆盖掉按钮的点击事件,意思也就是当你明明看到了按钮,但是点击却没反应,我们该怎么解决这个问题呢?
那么如何实现注册登录的按钮事件都在,当点击其它的地方还能取消键盘的第一响应?
实际上是比较简单的,我的解决办法是这样的:
首先是去创建一个按钮,需要是和屏幕一样大,把所有的控件全部都放到这个按钮上,而这个按钮的点击事件就是取消输入框的第一响应,使用这个方式就可以了。
ios开发是一个综合能力的开发,想要达到底部控件随着键盘的弹出而上移的效果,那么我们必然需要的到键盘在弹出时的高度,以及原点坐标。
大概的一个思路就是,用view的高度-键盘弹出时的高度,得到的值就是底部控件与view底部之间的距离,在整个效果完成的过程中,我们只需要调整控件与底部之间的距离即可,而不是控件与键盘之间的距离,这是一个思路。
- ios键盘输入屏幕上移的效果
- iOS开发之UI——键盘弹出屏幕上移
- iOS点击完按钮 出现 keyboard 并且屏幕上移
- iOS-监听键盘输入,视图整体上移或恢复-避免输入遮挡
- Windows Phone 的屏幕键盘输入范围索引
- 点击UITextField屏幕上移
- 图片上移效果
- 键盘输入和屏幕输出
- iOS开发记录——点击输入框上移屏幕,点击空白处隐藏键盘
- 关于iOS的键盘输入长度限制研究
- iOS开发-截取屏幕没有效果
- iOS开发 _ iOS7的兼容之上移20
- iOS开发 _ iOS7的兼容之上移20
- iOS开发 _ iOS7的兼容之上移20
- iOS开发 textField被键盘遮住的时候自动上移
- iOS开发:TextField随着键盘的弹出上移
- iOS简单的键盘弹出输入框上移
- ios当tableView整体上移时的处理
- 软件测试工程师必知:如何做好接口测试
- 快速的制作选择器
- Android RTC 自下往上浅析
- EF 常见错误, 无法加载指定的元数据资源、实体的验证失败等
- POJ2387---Til the Cows Come Home (最短路模板)
- ios键盘输入屏幕上移的效果
- BC1.2 and Type-C/PD How-to
- navicat 工具构建查询(非常方便)
- WPF DataGrid表头Checkbox 全选与全反选
- mysql水平分表和垂直分表的优缺点
- 在fluent计算时如何设置非稳态时的时间步长
- React Native异常
- 利用文件流实现文件读写
- 理解OAuth 2.0