監(jiān)聽鍵盤高度

在iOS開發(fā)中經(jīng)常需要監(jiān)聽鍵盤的高度,然后來適配屏幕中控件的位置,舉個栗子:在做聊天界面時,當(dāng)用戶點擊輸入框需要彈出鍵盤,此時輸入框的位置需要移動到鍵盤的位置上面,此時就要監(jiān)聽鍵盤的高度,然后去決定輸入框的高度,本文將以此為例

1.設(shè)置監(jiān)聽鍵盤frame變化的通知

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillChangeFrame:)name:UIKeyboardWillChangeFrameNotification object:nil];

2.實現(xiàn)綁定的方法

-(void)keyboardWillChangeFrame:(NSNotification*)notif

{

NSDictionary*userInfo = notif.userInfo;

//動畫的持續(xù)時間

double duration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];

//鍵盤的frame

CGRect keyboardF = [userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

[UIView animateWithDuration:duration animations:^{

if(view.size.height== keyboardF.size.height) {

//鍵盤消失

view.size.height = 0 ;

}else{

//鍵盤出現(xiàn)

view.size.height = keyboardF.size.height ;

}

}];

}


tip:當(dāng)觀察者存在時,其他控制器中鍵盤frame發(fā)生改變也會被監(jiān)聽到,如果要避免這種情況可在Viewwillappear中添加觀察者,在Viewwilldisappear中移除觀察者。

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

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

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