IOS开发入门之ios键盘输入屏幕上移的效果
凌雪 2018-11-09 来源 :网络 阅读 1013 评论 0

摘要:本文将带你了解IOS开发入门ios键盘输入屏幕上移的效果,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门ios键盘输入屏幕上移的效果,希望本文对大家学IOS有所帮助。


         

ios键盘输入屏幕上移的效果,在开发中会发现,在iOS开发中经常是会遇到一个键盘遮挡屏幕的一个情况出现,就比如当你输入账号密码的时候,会出现遮挡了一半的位置,甚至是更多的位置最关键的是会遮挡了下面的一些按钮,导致按钮事件也触发不了,目前解决的办法就是在当输入这些消息的时候如何让整个屏幕上移一个键盘的位置,又或者是移动到指定的一些位置也是可以的。

首先一般输入的话都用的是UITextField,所以要监听用户什么时候开始输入和什么时候结束输入,直接设置代理代理就行了。

要遵循UITextFieldDelegate协议。

//遵循协议

@interfaceViewController()

//设置相关的属性

@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频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程