IOS 鍵盤(pán)擋住輸入框的問(wèn)題解決辦法
IOS 鍵盤(pán)擋住輸入框的問(wèn)題解決辦法
在iOS開(kāi)發(fā)發(fā)現(xiàn)一個(gè)問(wèn)題,有時(shí)輸入框位于低出時(shí),當(dāng)編輯輸入時(shí),彈出的鍵盤(pán)會(huì)擋住輸入框,令用戶看不清楚實(shí)時(shí)的輸入情況,使界面交互極度不友好。
經(jīng)過(guò)查資料終于解決了這個(gè)問(wèn)題。
解決思路:
1. 輸入框監(jiān)聽(tīng)UIControlEventEditingDidBegin事件,當(dāng)用戶開(kāi)始輸入時(shí),將整個(gè)view上移。
2. 輸入框監(jiān)聽(tīng)UIControlEventEditingDidEnd事件,當(dāng)用戶結(jié)束輸入時(shí),將整個(gè)view下移,恢復(fù)到原位置。
輸入框監(jiān)聽(tīng)事件:
[textfield addTarget:self action:@selector(textFieldDidBeginEditing:) forControlEvents:UIControlEventEditingDidBegin]; [textfield addTarget:self action:@selector(textFieldDidEndEditing:) forControlEvents:UIControlEventEditingDidEnd];
響應(yīng)事件:
-(void)textFieldDidBeginEditing:(UITextField *)textField{ //開(kāi)始編輯時(shí),整體上移 if (textField.tag==0) { [self moveView:-20]; } if (textField.tag==1) { [self moveView:-60]; } } -(void)textFieldDidEndEditing:(UITextField *)textField{ //結(jié)束編輯時(shí),整體下移 if (textField.tag==0) { [self moveView:20]; } if (textField.tag==1) { [self moveView:60]; } } -(void)moveView:(float)move{ NSTimeInterval animationDuration = 0.30f; CGRect frame = self.view.frame; frame.origin.x +=move;//view的X軸上移 self.view.frame = frame; [UIView beginAnimations:@"ResizeView" context:nil]; [UIView setAnimationDuration:animationDuration]; self.view.frame = frame; [UIView commitAnimations];//設(shè)置調(diào)整界面的動(dòng)畫(huà)效果 }
有好幾個(gè)輸入框時(shí),這里是用輸入框的tag屬性來(lái)判斷用戶點(diǎn)擊了那個(gè)輸入框,前提是你必須先要給tag賦值。這種判斷方法對(duì)于tableView中嵌入許多的對(duì)話框特別有效。
還有一種方法就是已經(jīng)知道了各個(gè)輸入框的名字,利用名字去判斷用戶點(diǎn)擊了那個(gè)輸入框。
只有知道用戶點(diǎn)擊了那個(gè)輸入框,才能確定該輸入框要移動(dòng)多少距離。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
iOS頁(yè)面跳轉(zhuǎn)及數(shù)據(jù)傳遞(三種)
本文主要介紹了iOS頁(yè)面跳轉(zhuǎn)的三種方法及數(shù)據(jù)傳遞的方法。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03iOScollectionView廣告無(wú)限滾動(dòng)實(shí)例(Swift實(shí)現(xiàn))
本篇文章主要介紹了iOScollectionView廣告無(wú)限滾動(dòng)實(shí)例,可以實(shí)現(xiàn)廣告無(wú)限滾動(dòng),有興趣的可以了解一下。2016-11-11iOS App中實(shí)現(xiàn)播放音效和音樂(lè)功能的簡(jiǎn)單示例
這篇文章主要介紹了iOS App中實(shí)現(xiàn)播放音效和音樂(lè)功能的簡(jiǎn)單示例,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-03-03Dispatch Source Timer的使用及注意事項(xiàng)介紹
這篇文章主要給大家介紹了關(guān)于Dispatch Source Timer使用和一些注意事項(xiàng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)下吧。2017-09-09iOS App中調(diào)用相冊(cè)中圖片及獲取最近的一張圖片的方法
這篇文章主要介紹了iOS App中調(diào)用相冊(cè)中圖片及獲取最近的一張圖片的方法,示例代碼為傳統(tǒng)的Objective-C語(yǔ)言,需要的朋友可以參考下2016-03-03iOS路由(MGJRouter)的實(shí)現(xiàn)
這篇文章主要介紹了iOS路由(MGJRouter)的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09關(guān)于ios配置微信config出現(xiàn)驗(yàn)簽失敗的問(wèn)題解決
這篇文章主要介紹了關(guān)于ios配置微信config出現(xiàn)驗(yàn)簽失敗的問(wèn)題解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04