时间:2021-05-20
当我们在UITextField输入数据时经常弹出键盘遮挡界面,解决方法是:在弹出键盘时将整个UIVIew向上移动,在键盘消失时,UIVIew还原。
实例代码如下:
@interface ViewController ()<UITextFieldDelegate>@property(nonatomic,strong)UITextField* tf;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.tf = [[UITextField alloc]initWithFrame:CGRectMake(10, 600, 100, 20)]; self.tf.delegate = self; self.tf.backgroundColor = [UIColor blackColor]; [self.view addSubview:self.tf];}#pragma mark life Circle-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //后台切换到前台通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground)name:UIApplicationWillEnterForegroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [self.view endEditing:YES];}- (void)applicationWillEnterForeground{ [self.view endEditing:YES];}-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES];}#pragma mark UITextFieldDelegate-(void)textFieldDidBeginEditing:(UITextField *)textField{ //第一个cell不往上弹输入框的位置 // if(indexPath.row!=0){ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil]; // }}-(void)textFieldDidEndEditing:(UITextField *)textField{}#pragma mark 键盘操作- (void)keyboardWillChange:(NSNotification *)note{ NSDictionary *userInfo = note.userInfo; CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] doubleValue]; CGRect keyFrame = [userInfo[@"UIKeyboardFrameEndUserInfoKey"] CGRectValue]; //这个64是我减去的navigationbar加上状态栏20的高度,可以看自己的实际情况决定是否减去; CGFloat moveY = keyFrame.origin.y -self.tf.frame.origin.y-self.tf.frame.size.height; NSLog(@"%f",moveY); [UIView animateWithDuration:duration animations:^{ self.view.transform = CGAffineTransformMakeTranslation(0, moveY); }];}- (void)keyboardWillHide:(NSNotification *)nsnotification{ [[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil]; [UIView animateWithDuration:0.2 animations:^{ self.view.transform = CGAffineTransformMakeTranslation(0, 0); }];}@end以上这篇iOS 防键盘遮挡的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
IOSTextFiled与TextView键盘的收起以及处理键盘遮挡在iOS开发中,UITextFiled和UITextView是很常见的两个控件,当我们设置好
本文实例讲述了C#设置窗体最大化且不遮挡任务栏的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下://////设置窗体最大化(不遮挡任务栏)///
废话不多说,先看下实现后的效果:实现思路看到上边gif图的效果,主要列举一下实现过程过程中遇到的难点。如何使键盘弹出时候不遮挡底部登录布局;当键盘弹出的时候如何
下面一段代码是小编给大家介绍的swift3.0键盘弹起遮挡输入框问题的解决方案代码解析,具体代码如下所示;?1234567891011121314151617e
键盘的种类有很多,包括薄膜键盘,巧克力键盘,还有当今最热的机械键盘,每一种键盘都各有各的特色,本文的主角就是本人在11.11购买的这款防机械的狼途金刚狼K002