UI 03 关于UITextField键盘遮挡问题

首先,需要引头文件, 签订协议

已改成 MRC !

 //1.三个textfield
    UITextField *textField1 = [[UITextField alloc]initWithFrame:CGRectMake(100, 200, 150, 40)];
    textField1.layer.borderWidth = 1;
    textField1.layer.cornerRadius = 10;
    [self.view addSubview:textField1];
    textField1.delegate = self;
    [textField1 release];

    UITextField *textField2 = [[UITextField alloc]initWithFrame:CGRectMake(100, 300, 150, 40)];
    textField2.layer.borderWidth = 1 ;
    textField2.layer.cornerRadius =10 ;
    [self.view addSubview:textField2];
    textField2.delegate = self;
    [textField2 release];

    UITextField *textField3 = [[UITextField alloc]initWithFrame:CGRectMake(100, 400, 150, 40)];
    textField3.layer.borderWidth = 1 ;
    textField3.layer.cornerRadius = 10 ;
    [self.view addSubview:textField3];
    textField3.delegate = self;
    [textField3 release];
// 2.执行协议中的方法.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    //只要输入框被激活了,就会触发这个方法.
    if (textField.frame.origin.y > HEIGHT /2) {
        //先做一个差值
        CGFloat height = textField.frame.origin.y - HEIGHT/2;
        self.view.center = CGPointMake(self.view.center.x, self.view.center.y-height);
    }
    return YES;
}

//等到编译结束的时候,再让他回到原位,
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    //整个是在移动self.view,父视图的移动会让所有的子视图一同移动,而且相对父视图的坐标位置不会发生变化,所以可以沿用上一个方法的判断.
    if(textField.frame.origin.y > HEIGHT/2){
        //先做一个差值
        CGFloat height = textField.frame.origin.y - HEIGHT/2;
    self.view.center = CGPointMake(self.view.center.x, self.view.center.y + height);
    }
    return YES;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-15 19:39:34

UI 03 关于UITextField键盘遮挡问题的相关文章

IOS开发中滑动视图(UIScrollView, UITableView)的键盘遮挡处理

一.键盘遮挡的场景分类 1. 开始页面录入.输入控件在屏幕的下部,键盘出现后遮挡输入控件 2. 切换焦点.新输入框被当前键盘部分遮挡,可点击 3. 切换输入法. 4. 屏幕旋转.屏幕高度发生变化,原未被遮挡输入框旋转后被遮挡 二.UI需上移的距离计算 计算控件底部与键盘终点顶部的距离,调整阀值自定.通常选择输入控件最近的UIViewController->view作为同一参照 NSDictionary *userInfo = [notification userInfo]; NSValue* a

『零行代码』解决键盘遮挡问题(iOS)

关注仓库,及时获得更新:iOS-Source-Code-Analyze https://github.com/draveness/iOS-Source-Code-Analyze Follow: Draveness · Github 这篇文章会对 IQKeyboardManager 自动解决键盘遮挡问题的方法进行分析. 最近在项目中使用了 IQKeyboardManager 来解决 UITextField 被键盘遮挡的问题,这个框架的使用方法可以说精简到了极致,只需要将 IQKeyboardMan

iOS 键盘处理(改变键盘为完成键),UITextField键盘显示隐藏,弹出,回弹

很多时候用到UITextField时,处理键盘是一个很棘手的问题. 问题一:如何隐藏键盘? 方案1.改变键盘右下角的换行(enter)键为完成键,后实现代理方法键盘自动回弹 keyBoardControll.gif UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 300, 200, 40)]; [self.view addSubview:textField]; textField.delegat

iOS开发 编辑框被系统弹出的软键盘遮挡问题

我们在开发注冊界面的时候,最后几个注冊条件经常easy被系统弹出的键盘遮挡,例如以下图: 能够看见,邮箱条件被遮挡掉了,怎么解决呢?我是通过UITextField的代理加计算偏移量: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.emailTextField.delegate = self; } - (

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

通用方法解决UITextFiled输入的时候,键盘遮挡问题

我们在用键盘录入的时候,有可能会遮挡录入框,所以我们应调整UIView的位置,使其不被遮挡.我写了一个通用的方法可以解决这个问题:??1. [代码][C/C++]代码         - (void)moveView:(UITextField *)textField leaveView:(BOOL)leave      {          UIView *accessoryView = textField.inputAccessoryView;          UIView *inputvi

ZYKeyboardUtil 全自动处理键盘遮挡事件

键盘遮盖输入控件或按钮在日常app开发中避之不及,考虑各种情况下UI各种嵌套,最后还要注册监听再获取指定键盘信息.我们可以通过键盘处理工具类ZYKeyboardUtil避繁就简,利用Block的方式处理键盘遮盖问题. Demo地址:https://github.com/liuzhiyi1992/ZYKeyboardUtil 主要应对: 横竖屏键盘遮挡输入控件问题 第三方键盘多次弹出的坑 视图多层嵌套内输入控件处理 单页面内多个输入控件处理 ZYKeyboardUtil 通过lazy方式注册键盘通

iOS 处理键盘遮挡TextField、TextView问题

之前处理键盘遮挡问题都是在每一个控制器进行单独处理,这样做真的是非常的费事,今天在做项目的时候就想到自己封装一个,记录一下这个“跌宕起伏”的过程. 思路是这样的:计算文本编辑控件Frame与键盘Frame,如果遮挡则移动控制器View. 创建控制器类:WKAvoidKeyboardViewController 1 #import <UIKit/UIKit.h> 2 3 @interface WKAvoidKeyboardViewController : UIViewController 4 5