你的位置:首页 > 操作系统

[操作系统]IOS键盘输入屏幕上移


在IOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮。这样的话按钮的事件也就触发不了,最好的解决办法就是当输入这些信息的时候让整个屏幕上移一个键盘的位置,或者上移到指定的位置。

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

UITextFieldDelegate协议。

//遵循协议

@interface ViewController ()<UITextFieldDelegate>

//设置属性

@property(nonatomic,strong)UITextField* UITF;

//设置代理

 UITF.delegate=self;

//代理方法

//键盘弹出时屏幕上移

-( void )textFieldDidBeginEditing:(UITextField *)textField

{

  //假如多个输入,比如注册和登录,就可以根据不同的输入框来上移不同的位置,从而更加人性化

    //键盘高度216

    //滑动效果(动画)

    NSTimeInterval animationDuration = 0.30f;

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

    [UIView setAnimationDuration:animationDuration];

    //将视图的Y坐标向上移动,以使下面腾出地方用于软键盘的显示

    self.view.frame = CGRectMake(0.0f, -100.0f/*屏幕上移的高度,可以自己定*/, self.view.frame.size.width, self.view.frame.size.height); 

    [UIView commitAnimations];

}

//取消第一响应,也就是输入完毕,屏幕恢复原状

-( void )textFieldDidEndEditing:(UITextField *)textField

{

    //滑动效果

    NSTimeInterval animationDuration = 0.30f;

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

    [UIView setAnimationDuration:animationDuration];

    //恢复屏幕

    self.view.frame = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);

    [UIView commitAnimations];

}

接下来说一下取消第一响应。

一般都是在当前View上添加一个点击手势即可,这样的话就可以取消键盘的第一响应,但是这样的话有一个弊端,比如:因为注册登录页面当屏幕上移时,

就会显示注册或登录的页面,如果添加点击手势的话那么就会覆盖掉按钮的点击事件,也就是明明看到了按钮,但是点击却没反应,那么怎么办呢?

如何实现注册登录的按钮事件都在,点击其他的地方还能取消键盘的第一响应。

其实很简单,我的解决办法是这样的

创建一个按钮,和屏幕一样大,所有的控件全部都放到这个按钮上,而这个按钮的点击事件就是取消输入框的第一响应。这样就可以了。

 

 

 




跟团法国旅游需要多少钱几月份去法国旅游最好什么时候去法国旅游最便宜去法国旅游跟团要多少钱去法国旅游需要多少钱深圳园山风景区钓鱼多少钱?横岗园山钓鱼需要自带渔具吗? 深圳园山在哪里?龙岗园山怎么去? 深圳园山风景区有烧烤吗?横岗园山烧烤需要自带什么? 深圳园山风景区好玩吗?龙岗园山有哪些好玩的? 南京长江大桥 壮观又令人骄傲的建筑 邂逅星子县草滩 看中国最美城镇 徽山徽水徽文化 天降长假去歙县 等到风景都看透 海南西线自驾之旅 广东省内不为人知的世外桃源大盘点 普陀山旅游攻略2015 秋季去张家界旅游领略大自然 深圳大梅沙旅游攻略 南海影视城景点介绍?佛山南海影视城有什么好玩的?_南国桃园旅游攻略_南国桃园旅游景点 南海影视城门票价格?佛山南海影视城怎么收费?_南海影视城旅游攻略_南海影视城旅游景点 南海影视城图片?佛山南海影视城好玩吗?_南海影视城旅游攻略_南海影视城旅游景点 南海影视城位置?佛山南海影视城详细地址?_南海影视城旅游攻略_南海影视城旅游景点 MIM-5383K2 Datasheet MIM-5383K2 Datasheet MIM-5385K2 Datasheet MIM-5385K2 Datasheet MIM-5403K2 Datasheet MIM-5403K2 Datasheet 台湾特产 台湾特产 台湾特产 弄堂 弄堂 弄堂 杭州到西塘怎么坐车 杭州到西塘怎么坐车 杭州到西塘怎么坐车