键盘将出现键盘将隐藏并且view上下移动

-(void)viewWillAppear:(BOOL)animated{
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}

-(void)viewWillDisappear:(BOOL)animated
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    
}

-(void) keyboardWillShow:(NSNotification *) aNotification {
    
    //获取键盘的高度
    NSDictionary *userInfo = [aNotification userInfo];
    NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [aValue CGRectValue];
    int height = keyboardRect.size.height;
    NSLog(@"%d",height);
    //跳转到详细的视图控制器
    
    
    [UIView animateWithDuration:0.3 animations:^{
        
        
        //改变位置
        self.tableView.contentInset = UIEdgeInsetsMake(self.tableView.contentInset.top, 0, height, 0);
        
    }];
    
}

-(void) keyboardWillHide:(NSNotification *) aNotification
{
    [UIView animateWithDuration:0.3 animations:^{
        
        
        //改变位置
        self.tableView.contentInset = UIEdgeInsetsMake(self.tableView.contentInset.top, 0, 0, 0);
        
    }];
    
}

或者改view得frame的纵坐标

例如

keyboardWillShow:

self.view.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-height, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-64);

keyboardWillHide:

self.view.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-64);

时间: 2024-10-08 10:54:40

键盘将出现键盘将隐藏并且view上下移动的相关文章

隐藏虚拟键盘,解决键盘挡住UITextField问题

再正式开始之前,先来介绍一下IOS的键盘类型: 一.键盘风格 UIKit框架支持8种风格键盘 ? 1 2 3 4 5 6 7 8 9 10 typedef enum {      UIKeyboardTypeDefault,                // 默认键盘:支持所有字符       UIKeyboardTypeASCIICapable,           // 支持ASCII的默认键盘       UIKeyboardTypeNumbersAndPunctuation,  //

IOS: iPhone键盘通知与键盘定制

一.键盘通知 当文本View(如UITextField,UITextView,UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘.成为firstresponder可能由用户点击触发,也可向文本View发送becomeFirstResponder消息触发.当文本视图退出first responder时,键盘会消失.文本View退出first responder可能由用户点击键盘上的Done或Return键结束输入触发,也可向文本View发送resig

ios-关闭键盘于打开键盘的方式之textField

方法一: //1, 关闭键盘 [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; 如果一个view上好多输入框,我们可以关闭弹出的软键盘要遍历然后调用resignFirstResponder 或者在隐藏键盘的方法中调用    [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; 方法二: //2, 关闭键盘 [[self findFirstResp

设置警告框为带有一个密文输入框的样式,并设置输入框键盘为数字键盘;判断密文输入框里的内容,并弹出相应提示

项目需求 废话不说,直接上试题 及答案 代码 #import "TableViewController.h" @interface TableViewController ()<UIAlertViewDelegate> @property (nonatomic, strong) NSMutableArray * dataSource; - (IBAction)buy:(id)sender; @end @implementation TableViewController -

iOS自定义键盘和系统键盘切换且文本输入框一直获得焦点

UITextView用来进行文本输入.方法becomeFirstResponder和resignFirstResponder可以用来进行弹出系统键盘和收下系统键盘. 弹出系统键盘,文本输入框获得焦点.收下系统键盘,文本输入框失去焦点.那么,问题来了. 某个条件下,如点击界面上的某个按钮,展示自定义键盘.再次点击,切换到系统键盘.先收下系统键盘,再展示自定义键盘.比如移动自定义键盘View的Frame.Y.但这时因为收下系统键盘,本文输入框失去焦点.虽然展示了自定义键盘.但用户体验很不好.光标没有

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

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

iOS键盘中英文切换键盘高度获取通知方法

iOS键盘中英文切换键盘高度获取通知方法, 有需要的朋友可以参考下. 注册通知 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotific

IOS开发学习笔记-(2)键盘控制,键盘类型设置,alert 对话框

一.关闭键盘,放弃第一响应者,处理思路有两种 ① 使用文本框的 Did End on Exit 绑定事件 ② UIControl on Touch 事件 都去操作 sender 的  resignFirstResponder #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtUserName; @pro

UI弹出键盘和收回键盘

点击textfield,会自动弹出键盘 要让键盘收回来,先设置个代理:[field setTextFieldDelegate:self];  可设置成自己,也可设置成其他对象,只要在对应的类中,遵循UITextFieldDelegate协议 在UITextFieldDelegate协议中,有一些可选的方法: //点击return回收键盘 - (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstRe

Android - 隐藏视图View: &quot;android:visibility&quot;

隐藏视图View: "android:visibility" 本文地址: http://blog.csdn.net/caroline_wendy 视图可以选择隐藏(gone), 可视(visible), 不可视(invisible). 可见(visible): XML文件:android:visibility="visible" Java代码:view.setVisibility(View.VISIBLE); 不可见(invisible): XML文件:androi