iOS 实现输入框被编辑以及取消编辑跟随键盘移动

通常情况下,我们在做评论的时候,以及即时聊天时候要实现实现输入框被编辑以及取消编辑跟随键盘移动。

效果和微信一样,当我们编辑的时候输入框就会跟随键盘移动。

例子效果图:


当我点击评论或者编辑输入框的时候,键盘就会自动上移是实现代码如下:

- (void)viewDidLoad {

    [superviewDidLoad];

     // 收起键盘键盘

    UITapGestureRecognizer *tapgest = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tapBackAction)];

    [self.viewaddGestureRecognizer:tapgest];

}


- (void)tapBackAction {

    [self.viewendEditing:YES];

}


- (void)viewWillAppear:(BOOL)animated {

    // 添加对键盘的监控

    [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyBoardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];

    [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyBoardWillHide:)name:UIKeyboardWillHideNotificationobject:nil];

}


- (void)tapBackAction {

    [self.viewendEditing:YES];

}


- (void)keyBoardWillShow:(NSNotification *) note {

    // 获取用户信息

    NSDictionary *userInfo = [NSDictionarydictionaryWithDictionary:note.userInfo];

    // 获取键盘高度

    CGRect keyBoardBounds  = [[userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue];

    CGFloat keyBoardHeight = keyBoardBounds.size.height;

    // 获取键盘动画时间

    CGFloat animationTime  = [[userInfoobjectForKey:UIKeyboardAnimationDurationUserInfoKey]floatValue];

    

    // 定义好动作

    void (^animation)(void) = ^void(void) {

        self.suspendView.transform = CGAffineTransformMakeTranslation(0, - keyBoardHeight);

    };

    

    if (animationTime >0) {

        [UIViewanimateWithDuration:animationTimeanimations:animation];

    } else {

        animation();

    }

    

}


- (void)keyBoardWillHide:(NSNotification *) note {

    // 获取用户信息

    NSDictionary *userInfo = [NSDictionarydictionaryWithDictionary:note.userInfo];

    // 获取键盘动画时间

    CGFloat animationTime  = [[userInfoobjectForKey:UIKeyboardAnimationDurationUserInfoKey]floatValue];

    

    // 定义好动作

    void (^animation)(void) = ^void(void) {

        self.suspendView.transform = CGAffineTransformIdentity;

    };

    

    if (animationTime >0) {

        [UIViewanimateWithDuration:animationTimeanimations:animation];

    } else {

        animation();

    }

}


self . suspendView就是textfild后面的UIView。

@property (weak,nonatomic)IBOutletUIView *suspendView;


这样就实现了,所需要的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现iOS的聊天输入框功能,可以按照以下步骤进行: 第一步,创建一个包含输入框的视图控制器。可以使用UITextField或UITextView来创建输入框,并设置好相应的属性,例如输入框的大小、位置、边框样式等。 第二步,设置输入框的代理。通过设置输入框的代理,可以监听输入框的文字变化、键盘弹出和隐藏等事件,并做出相应的处理。 第三步,实现输入框的自动调整高度功能。聊天输入框通常需要根据输入的文字内容自动调整高度,以方便用户输入长文本。可以通过监听输入框的文字变化,并计算输入框内容所需的高度,然后实时更新输入框的高度。 第四步,处理键盘的弹出和隐藏。当用户点击输入框时,系统自动弹出键盘。为了不遮挡输入框,需要将输入框键盘的弹出而上移,以保证用户能够看到正在输入的文字。可以使用NSNotification来监听键盘的弹出和隐藏事件,并相应地更新输入框的位置。 第五步,实现发送按钮的功能。在聊天输入框中一般有一个发送按钮,用于发送消息。可以通过添加一个UIButton,并设置好按钮的样式和位置。然后,监听发送按钮的点击事件,并处理发送消息的逻辑,例如将消息发送到服务器或本地数据库。 在实现聊天输入框功能的过程中,还可以根据需求添加一些其他的功能,如表情符号的支持、附件的发送等。通过以上步骤,就可以实现一个基本的聊天输入框功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王 哪跑!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值