IOS解决键盘挡住输入框的问题

本文介绍了一种通过代理模式和动画效果,解决键盘遮挡输入框问题的技术实现方法。当用户开始编辑文本字段时,整体布局会向上移动,避免键盘覆盖输入区域;当编辑结束后,布局会自动向下移动恢复正常。通过点击屏幕任意位置,可以快速收起键盘,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决键盘挡住输入框的问题

步骤:

1、将UITextField全部设置好Delegate;

    _NameTextField.delegate=self;

    _IDCardTextField.delegate=self;

    _MobileTextField.delegate=self;

2、实现代理方法中的textFieldDidBeginEditing  和textFieldDidEndEditing方法。

#pragma mark - UITextFieldDelegate

//开始编辑时,整体上移

- (void)textFieldDidBeginEditing:(UITextField *)textField{

    if( (textField.tag==327)||(textField.tag==328)||(textField.tag==329)){

        [self moveView:-100];

    }

}


//结束编辑时,整体下移

- (void)textFieldDidEndEditing:(UITextField *)textField{

     if ( (textField.tag==327)||(textField.tag==328)||(textField.tag==329)){

        [self moveView:100];

    }

}


3、设置移动的事件,将VIEW的Y轴改变

//上移Y轴,界面动画效果

-(void)moveView:(float)move{

    NSTimeInterval animationDuration = 0.30f;

    CGRect frame = self.view.frame;

    frame.origin.y +=move;//view的Y轴上移

    self.view.frame = frame;

    [UIView beginAnimations:@"ResizeView" context:nil];

    [UIView setAnimationDuration:animationDuration];

    self.view.frame = frame;

    [UIView commitAnimations];//设置调整界面的动画效果

    }

4、点击任何地方收起键盘

//重载UiViewController中的touchesBegin方法,单击UIViewController任意地方,都可收起键盘

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    [self.NameTextField resignFirstResponder];

    [self.IDCardTextField resignFirstResponder];

    [self.MobileTextField resignFirstResponder];

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值