iOS键盘遮挡输入框,输入区域自动上移

在iOS开发过程当中,遇到关于键盘遮挡输入框的问题,经过网络参考与实践,总结如下:

登录窗口,上下放置两个UITextField,一个用户名,一个密码,放置的在屏幕下方1/3处,当点击用户名时,自动弹出键盘,正好挡住了输入框

解决思路:

1、BLoginViewController 实现UITextViewDelegate的方法

 1  //实现了UITextFieldDelegate中的方法,当对TextField进行编辑即键盘弹出时,自动将输入框上移
 2  -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
 3      NSTimeInterval animationDuration=0.30f;
 4      [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
 5      [UIView setAnimationDuration:animationDuration];
 6      float width = self.view.frame.size.width;
 7      float height = self.view.frame.size.height;
 8      //上移n个单位,按实际情况设置
 9      CGRect rect=CGRectMake(0.0f,-130,width,height);
10      self.view.frame=rect;
11      [UIView commitAnimations];
12      return YES;
13  }

2、为输入框设置代理

 1 - (void)viewDidLoad
 2 {
 3      [super viewDidLoad];
 4
 5      //状态栏白色字体
 6      [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
 7
 8      UIColor *btnBgColor = [UIColor colorWithWhite:1.0f alpha:1.0];
 9      [_buttonLogin setBackgroundColor:btnBgColor];
10
11      //为输入框添加代理
12      _textFieldUserName.delegate = self;
13      _textFieldPassword.delegate = self;
14
15 }

效果:

 

参考:http://blog.csdn.net/ryantang03/article/details/8203605

时间: 2024-12-28 06:15:20

iOS键盘遮挡输入框,输入区域自动上移的相关文章

iOS- UITextView与键盘回收与键盘遮挡输入框

一.UITextView 可以实现多行输入的文本框,基本属性与UITextField相似,可以输入多行,可以滚动.UITextView还有个代理方式- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 可以控制输入文字的数量,较为常用 #pragma mark UITextView的代理方法 //是否可以开始编辑 - (BOOL

iOS键盘遮挡问题解决办法

iOS开发之“键盘遮挡输入框的解决办法”之一 -----键盘通知之前处理这种问题,总是在触发输入框编辑事件键盘弹出的时候,将当前的View整体向上移动,结束编辑又整体向下移,耗时耗力效率低. 在网上看了使用键盘通知的方法很是方便,所以写了个demo供初学者参考! 1.在ViewController.m文件声明 #import "ViewController.h" @interface ViewController ()<UITableViewDelegate,UITableVie

react-native 键盘遮挡输入框

Android上已经自动对键盘遮挡输入框做了处理,所以我们只需要关注ios. 1.首先引入 KeyboardAvoidingView import { KeyboardAvoidingView } from 'react-native'; 2.然后在页面的最外层加上 KeyboardAvoidingView render(){ return <KeyboardAvoidingView behavior={'padding'} style={{flex: 1}}> {/*具体页面内容*/} &l

React-native键盘遮挡输入框问题的解决

RN中要解决键盘遮挡输入框的问题其实有挺多方式,在这里只是记录其中的一些个人实际开发中使用到的. 方式一.使用scrollTo方法,这也是最简单最粗暴的,只是需要计算scrollview滚动的距离,并且处理一些体验的bug问题.大致思路是:组件render方法中使用scrollview,并且设置scrollview的keyboardShouldPersistTaps={true}(此步一定不能少,如果缺少该属性,接下来的一步将会不起作用),然后在scrollview中用一个view作为conta

LinearLayout详解四:彻底解决软键盘遮挡输入框的问题

之前把预备知识都介绍完了,话说学以致用,接下来我们要通过重载LinearLayout类来解决软键盘覆盖的问题. 首先阐述一下这个问题,如下图所示: 然后看挡住输入框的情况 然后我们给出xml的源代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:lay

安卓H5软键盘遮挡输入框

<div class="label"> * <span><?php echo lang('receive_email_info'); ?></span> <input class="r-email" type="text" placeholder="<?php echo lang('please_in_receive_email'); ?>3333"> &

iOS-当输入框被键盘遮挡时让整个view上移

注册键盘通知 #pragma mark - 键盘通知 - (void)addNoticeForKeyboard { //注册键盘出现的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //注册键盘消失的通知 [[NSNotificationCenter def

键盘遮挡输入框处理

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #008400 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3e1e81 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s

解决键盘遮挡输入框的问题

1)首先得遵守协议UITextFieldDelegate @interface userInfoViewController()<UITextFieldDelegate> 2)设置代理(下面的self都是输入框所在的父view) textField.delegate = self; 3)实现UITextFieldDelegate的三个方法即可: - (BOOL)textFieldShouldReturn:(UITextField *)textField {     [textField res