iOS基礎(chǔ)-小Demo--鍵盤彈出調(diào)整輸入框位置(TextView或者TextFiled)

有花堪折直須折,莫到無花空折枝!<轟隆雉雞>

效果圖:

自定義發(fā)送框適應(yīng)鍵盤彈出

分析:
正常情況下底部發(fā)送的發(fā)送框固定好位置后, 鍵盤彈出會(huì)把它擋住!那么就需要我們?cè)阪I盤彈出的時(shí)候改變我們發(fā)送框工具欄的位置;
思路:
首先: 整體上來看 textView 和 "聲音" "表情" "加號(hào)" 三個(gè) Button 添加到一個(gè) View上,然后對(duì) View 進(jìn)行約束, 這里需要其左邊距離(父視圖View)0,右邊距0, 下面0 然后固定一個(gè)高度
其次: 監(jiān)聽鍵盤的行為當(dāng)鍵盤彈出來的時(shí)候, 我們把發(fā)送框所在的 View 底部的約束進(jìn)行適當(dāng)?shù)男薷?讓其顯示在鍵盤的上方, 鍵盤消失后回到原來位置


代碼實(shí)現(xiàn):

1: 把發(fā)送框所在 View 的距離下部的約束拉進(jìn)響應(yīng)控制器作為屬性

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

2: 使用系統(tǒng)通話實(shí)現(xiàn)監(jiān)聽鍵盤的行為

#pragma mark  通知監(jiān)聽鍵盤彈出情況  使用的是系統(tǒng)的通知
#當(dāng)鍵盤彈出的時(shí)候  執(zhí)行kbWillShow:
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(kbWillShow:) name:UIKeyboardWillShowNotification object:nil];
#當(dāng)鍵盤消失的時(shí)候 執(zhí)行kbHideShow:
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(kbHideShow:) name:UIKeyboardWillHideNotification object:nil];```
3: 實(shí)現(xiàn)響應(yīng)通知的方法
\#pragma mark  鍵盤彈出 觸發(fā)事件

```code
# 鍵盤彈出 調(diào)整約束的高度
- (void)kbWillShow:(NSNotification *)noti
{
// 獲取鍵盤的高度  首先獲取當(dāng)前鍵盤的 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];
}
# 鍵盤收起  一切回到夢(mèng)開始的地方
- (void)kbHideShow:(NSNotification *)noti
{
    // 把約束改成開始的 0 
    self.toolBottomConstraint.constant = 0 ;
    [UIView animateWithDuration:0.1 delay:0 options: UIViewAnimationOptionCurveEaseInOut  animations:^{
// 布控子視圖 
[self.view layoutIfNeeded];

    } completion:nil];


}```

有時(shí)間在寫高度適應(yīng)的問題, 最近寫點(diǎn)小項(xiàng)目! 加油!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,039評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,315評(píng)論 4 61
  • 磚頭出差將近一周,剛好周五到無錫,他約我過來玩。從寧波到無錫兩三個(gè)小時(shí)的車程,周日他開會(huì),我得一個(gè)人返程,想想都覺...
    麥子飛呀飛閱讀 281評(píng)論 0 0
  • 本文分享的大體框架包含以下三部分 (1)首先介紹html網(wǎng)頁,用來解析html網(wǎng)頁的工具xpath(2)介紹pyt...
    不忘初心c閱讀 2,703評(píng)論 0 14
  • 《隨園拍詩——拍的就是你》的初衷是通過對(duì)大家的作品的尖銳點(diǎn)評(píng),把各位原先隱藏的缺點(diǎn)全部揭露出來,并加以改進(jìn),使大家...
    霙愔閱讀 458評(píng)論 1 1

友情鏈接更多精彩內(nèi)容