iOS解決鍵盤出現(xiàn)后TableView高度變化 和 View位置變化

一、鍵盤出現(xiàn)TableView的高 動態(tài)變化
有時候,當我們的鍵盤彈起時候擋住了部分TableView的視圖,需要讓他的高度發(fā)生變化,變的可以滑動到最低部。
這時候可以通過監(jiān)聽鍵盤的事件來做出相應的處理。

// 監(jiān)聽鍵盤改變
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];

我們這里監(jiān)聽的是** UIKeyboardWillChangeFrameNotification**,因為這樣就可以在一個監(jiān)聽事件里處理所有事,不然寫倆個是很難讓強迫癥接受的事情。

#pragma mark 監(jiān)聽鍵盤事件
- (void)keyboardWillChangeFrame:(NSNotification *)notification{

    NSDictionary *info = [notification userInfo];
    CGFloat duration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];
    CGRect beginKeyboardRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
    CGRect endKeyboardRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGFloat yOffset = endKeyboardRect.origin.y - beginKeyboardRect.origin.y;
   
   [UIView animateWithDuration:duration animations:^{
        
        _tableViewMM.height += yOffset;
    }];
}

二、鍵盤出現(xiàn)ToolBarView動態(tài)變化
同樣是上面的通知方法,在監(jiān)聽事件里處理transform

#pragma mark 監(jiān)聽鍵盤事件
- (void)keyboardWillChangeFrame:(NSNotification *)notification{

    CGFloat keyboardY = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].origin.y;
    CGFloat ty = keyboardY - SCREEN_HEIGHT;
    /**
     *  像這種移動后又回到原始位置的建議使用transform,因為transform可以直接清零回到原來的位置
     */
    [UIView animateWithDuration:duration animations:^{
        
        self.toolBarView.transform = CGAffineTransformMakeTranslation(0, ty);
    }];
}

在最后將監(jiān)聽注銷掉

// 移除監(jiān)聽
- (void)dealloc{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,379評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評論 25 709
  • 冉冉 文 午飯過后,兩個小時的火車去往呼和浩特,再飛烏魯木齊,不想一切美好的開始竟是一場漫長的等待。 機場里,時間...
    冉冉ranran閱讀 300評論 0 0
  • Camera顧名思義,就是照相機、攝像機的意思。在Android中使用這個類可以做拍照和錄像的功能。但是在Andr...
    _SOLID閱讀 6,832評論 3 44
  • 頸椎病又稱頸椎綜合征,是頸椎骨關節(jié)炎,增生性頸椎炎、頸神經(jīng)根綜合征、頸椎間盤脫出癥的總稱,是一種以退行性病理改變?yōu)?..
    聽秋月說閱讀 190評論 0 0

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