iOS基础-小Demo--键盘弹出调整输入框位置(TextView或者TextFiled)

1523603-4cc773ea938158fb.png
有花堪折直须折,莫到无花空折枝!<轰隆雉鸡>

效果图:

1523603-c9f63e3d96250064.gif
自定义发送框适应键盘弹出

分析:
正常情况下底部发送的发送框固定好位置后, 键盘弹出会把它挡住!那么就需要我们在键盘弹出的时候改变我们发送框工具栏的位置;
思路:
首先: 整体上来看 textView 和 "声音" "表情" "加号" 三个 Button 添加到一个 View上,然后对 View 进行约束, 这里需要其左边距离(父视图View)0,右边距0, 下面0 然后固定一个高度
其次: 监听键盘的行为当键盘弹出来的时候, 我们把发送框所在的 View 底部的约束进行适当的修改,让其显示在键盘的上方, 键盘消失后回到原来位置


代码实现:

1: 把发送框所在 View 的距离下部的约束拉进响应控制器作为属性

// 工具条底部约束
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *toolBottomConstraint;

2: 使用系统通话实现监听键盘的行为

#pragma mark  通知监听键盘弹出情况  使用的是系统的通知
#当键盘弹出的时候  执行kbWillShow:
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(kbWillShow:) name:UIKeyboardWillShowNotification object:nil];
#当键盘消失的时候 执行kbHideShow:
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(kbHideShow:) name:UIKeyboardWillHideNotification object:nil];```
3: 实现响应通知的方法
\#pragma mark  键盘弹出 触发事件

```code
# 键盘弹出 调整约束的高度
- (void)kbWillShow:(NSNotification *)noti
{
// 获取键盘的高度  首先获取当前键盘的 Rect
    CGRect kbFram = [noti.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGFloat kbHeight = kbFram.size.height;
// 把约束改掉
    self.toolBottomConstraint.constant = kbHeight ;
  [UIView animateWithDuration:1 delay:0 options: UIViewAnimationOptionCurveEaseInOut  animations:^{
   // 布控子视图
 [self.view layoutIfNeeded];

    } completion:nil];
}
# 键盘收起  一切回到梦开始的地方
- (void)kbHideShow:(NSNotification *)noti
{
    // 把约束改成开始的 0 
    self.toolBottomConstraint.constant = 0 ;
    [UIView animateWithDuration:0.1 delay:0 options: UIViewAnimationOptionCurveEaseInOut  animations:^{
// 布控子视图 
[self.view layoutIfNeeded];

    } completion:nil];


}```

有时间在写高度适应的问题, 最近写点小项目! 加油!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值