zoukankan      html  css  js  c++  java
  • UITextField控件处理键盘弹出时遮住输入框的问题

    实现以下三个方法,如果弹出的键盘会遮住输入框 ,整体的界面会向上移动,这样就不会遮住输入框了。自己增加UITextFieldDelegate委托。
    只适合iPhone,如果想要支持iPad,只要把216改成iPad上面键盘的高度即可。

    - (void)keyboardWillShow:(NSNotification *)noti
           
            //键盘输入的界面调整        
            //键盘的高度
            float height = 216.0;                
            CGRect frame = self.view.frame;        
            frame.size = CGSizeMake(frame.size.width, frame.size.height - height);        
            [UIView beginAnimations:@"Curl"context:nil];//动画开始          
            [UIView setAnimationDuration:0.30];           
            [UIView setAnimationDelegate:self];          
            [self.view setFrame:frame];         
            [UIView commitAnimations];         
    }


    - (BOOL)textFieldShouldReturn:(UITextField *)textField 
           
        // When the user presses return, take focus away from the text field so that the keyboard is dismissed.        
        NSTimeInterval animationDuration = 0.30f;        
        [UIView beginAnimations:@"ResizeForKeyboard" context:nil];        
        [UIView setAnimationDuration:animationDuration];        
        CGRect rect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);        
        self.view.frame = rect;        
        [UIView commitAnimations];        
        [textField resignFirstResponder];
        return YES;        
    }

    - (void)textFieldDidBeginEditing:(UITextField *)textField
           
            CGRect frame = textField.frame;
            int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);//键盘高度216
            NSTimeInterval animationDuration = 0.30f;                
            [UIView beginAnimations:@"ResizeForKeyBoard" context:nil];                
            [UIView setAnimationDuration:animationDuration];
            float width = self.view.frame.size.width;                
            float height = self.view.frame.size.height;        
            if(offset > 0)
            {
                    CGRect rect = CGRectMake(0.0f, -offset,width,height);                
                    self.view.frame = rect;        
            }        
            [UIView commitAnimations];                
    }

  • 相关阅读:
    Python学习——Python线程
    Python学习——异常处理
    Python学习——python的常用模块
    Python学习 ——正则表达式
    Python学习——迭代器&生成器&装饰器
    Python学习——内置函数
    Python学习——深浅拷贝
    Python学习——collections系列
    反编译字节码角度分析synchronized关键字的原理
    谈谈数据库隔离级别
  • 原文地址:https://www.cnblogs.com/careerman/p/2645313.html
Copyright © 2011-2022 走看看