ScrollView上鍵盤(pán)遮擋問(wèn)題

之前做的項(xiàng)目中有過(guò)注冊(cè)和修改個(gè)人信息的頁(yè)面,因?yàn)檩斎氲目虮容^多,如果要適配較小的屏幕時(shí)(比如說(shuō),3.5寸屏),不用滾動(dòng)視圖的話沒(méi)有辦法可以將所有輸入框都顯示在屏幕上。所以把輸入框都放到了ScrollView上面(我用xib來(lái)拖入控件,而關(guān)于ScrollView的適配問(wèn)題是比較麻煩的,自行百度),這里也會(huì)有鍵盤(pán)的遮擋問(wèn)題。

關(guān)于ScrollView的鍵盤(pán)遮擋問(wèn)題,一開(kāi)始話了很多時(shí)間去改變它的Frame的高度,但是結(jié)果不如人意。后來(lái)在網(wǎng)上看了很多資料,發(fā)現(xiàn)一個(gè)簡(jiǎn)單有效的方法,特此記錄下來(lái),供以后查閱。

首先需要注冊(cè)好鍵盤(pán)通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

接下來(lái)是兩個(gè)注冊(cè)方法的實(shí)現(xiàn):

//顯示鍵盤(pán)
- (void)keyboardWillShow:(NSNotification *)notification {
    //獲取鍵盤(pán)高度
    CGFloat height = [self fetchKeyboardHeightWithNotification:notification];

    //設(shè)置contentInset的值(一開(kāi)始的默認(rèn)值為(0,0,0,0))
    UIEdgeInsets e = UIEdgeInsetsMake(0, 0, height, 0);
    [self.bgScrollView setContentInset:e];

    //這個(gè)可以設(shè)置ScrollView上鍵盤(pán)的隱藏方式
    //_bgScrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
}

//隱藏鍵盤(pán)
- (void)keyboardWillHide:(NSNotification *)notification {
     //將contentInset的值設(shè)回原來(lái)的默認(rèn)值
    UIEdgeInsets e = UIEdgeInsetsMake(0, 0, 0, 0);
    [self.bgScrollView setContentInset:e];

    NSLog(@"scrollView.height = %f", self.bgScrollView.contentSize.height);
}
最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,662評(píng)論 4 61
  • 一_。 二零-七年七月八日,吉林省造船業(yè)骨干企業(yè)大安造船廠,一改往日的錘聲鏗鏘電弧閃耀的繁忙景象。大門(mén)上方懸掛起...
    寧寧姥爺閱讀 778評(píng)論 1 2
  • 移動(dòng)APP安全事件泄漏的信息主要是以用戶的姓名、地址、賬號(hào)、密碼、手機(jī)號(hào)等信息為主,特別是尤其金融理財(cái)類APP。鼎...
    必安全AppBeSafe閱讀 377評(píng)論 0 2
  • 你是否為男/女朋友感到困惑?你是否想過(guò)和TA分手 ?其實(shí)有時(shí)候并不只是TA錯(cuò)了 。換個(gè)角度想想,又是說(shuō)不定是你錯(cuò)了...
    當(dāng)年的話閱讀 117評(píng)論 0 0

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