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

有花堪折直须折,莫到无花空折枝!<轰隆雉鸡>

效果图:

自定义发送框适应键盘弹出

分析:
正常情况下底部发送的发送框固定好位置后, 键盘弹出会把它挡住!那么就需要我们在键盘弹出的时候改变我们发送框工具栏的位置;
思路:
首先: 整体上来看 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];


}```

有时间在写高度适应的问题, 最近写点小项目! 加油!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,944评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 砖头出差将近一周,刚好周五到无锡,他约我过来玩。从宁波到无锡两三个小时的车程,周日他开会,我得一个人返程,想想都觉...
    麦子飞呀飞阅读 252评论 0 0
  • 本文分享的大体框架包含以下三部分 (1)首先介绍html网页,用来解析html网页的工具xpath(2)介绍pyt...
    不忘初心c阅读 2,607评论 0 14
  • 《随园拍诗——拍的就是你》的初衷是通过对大家的作品的尖锐点评,把各位原先隐藏的缺点全部揭露出来,并加以改进,使大家...
    霙愔阅读 404评论 1 1