IOS:UITextField键盘出现,让视图上升

本文介绍如何在键盘弹出时优雅地调整视图,避免键盘遮挡输入框,通过实现UITextFieldDelegate协议中的方法,并运用动画效果,平滑地调整视图位置。

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

   有时候,我们会发现当键盘出现时,会遮挡住我们想要看到的输入框等内容,我们可以采用一些方法让视图在键盘出现时上升一定高度,在键盘消失后,让视图恢复原样。

    (1)

    UITextFieldDelegate中有两个方法用来判断键盘是否开始编辑状态和键盘是否结束编辑,我们可以在这两个方法中分别让视图上升和和恢复原样。

    代码如下(记得遵守UITextFieldDelegate协议并设置委托

   

//键盘出现时,让视图上升

- (void)textFieldDidBeginEditing:(UITextField *)textField

{

    //获得当前视图中心

    CGPoint p=self.view.center;

    //让视图中心在y坐标上升更150

    p.y-=150;

    [self.viewsetCenter:p];

}

//键盘消失时,试图恢复原样

- (void)textFieldDidEndEditing:(UITextField *)textField

{

    CGPoint p=self.view.center;

    p.y+=150;

    [self.viewsetCenter:p];

}


   我们可以范县这种方法可以实现视图的上升,胆识视图视图是突然上升和恢复的,在效果上太突兀了,我们可以考虑用动画的效果实现该过程;代码如下(还是在上面两个方法中)

   

- (void)textFieldDidBeginEditing:(UITextField *)textField

{

    //设置动画名字

    [UIViewbeginAnimations:@"Animation"context:nil];

    //设置动画的间隔时间

    [UIViewsetAnimationDuration:0.20];

    //在当前正在运行的状态下开始下一段动画

    [UIViewsetAnimationBeginsFromCurrentStateYES];

    //设置视图移动的偏移量

    self.view.frame =CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y -100,self.view.frame.size.width,self.view.frame.size.height);

    //设置动画结束

    [UIViewcommitAnimations];

}

- (void)textFieldDidEndEditing:(UITextField *)textField

{

    //设置动画的名字

    [UIViewbeginAnimations:@"Animation"context:nil];

    //设置动画的间隔时间

    [UIViewsetAnimationDuration:0.3];

    //使用当前正在运行的状态开始下一段动画

    [UIViewsetAnimationBeginsFromCurrentStateYES];

    //设置视图移动的位移

    self.view.frame =CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y +100,self.view.frame.size.width,self.view.frame.size.height);

    //设置动画结束

    [UIViewcommitAnimations];

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值