• 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];                
    }

  • 相关阅读:
    如何写一个bat文件,让他去执行某一个地方的bat文件
    服务器加电自动开机模式设置
    第三章 线程状态
    第二章 线程安全
    第一章 线程
    多线程入门
    异常
    SSO系统介绍
    解决:Nginx访问静态页面出现中文乱码
    错误处理:java.lang.NoClassDefFoundError: javax/jms/JMSContext
  • 原文地址:https://www.cnblogs.com/careerman/p/2645313.html
Copyright © 2020-2023  润新知