最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS橫屏彈鍵盤的高度錯(cuò)誤異常解決

 更新時(shí)間:2021年04月15日 11:24:20   作者:yoferzhang  
這篇文章主要給大家介紹了關(guān)于iOS橫屏彈鍵盤的高度錯(cuò)誤異常解決的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

問題:橫屏下第一次彈出鍵盤高度異常

- (void)handleKeyboardWillShowNotification:(NSNotification *)notification {
    NSTimeInterval animationDuration = 0;
    CGRect keyboardFrame = CGRectZero;
    NSDictionary *userInfo = [notification userInfo];
    [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] getValue:&animationDuration];
    [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardFrame];
    
    printf("keyboardFrame height: %f\n", keyboardFrame.size.height);

    [self showWithAnimationDuration:animationDuration keyboardFrame:keyboardFrame];
}

彈出新window,rootViewController里面有個(gè) UITextField ,然后調(diào)用 becomeFirstResponder ,啟動(dòng)app,第1次彈出鍵盤時(shí),會(huì)走進(jìn)兩次通知,打印鍵盤高度:

keyboardFrame height: 125.000000
keyboardFrame height: 302.000000

這兩個(gè)高度都是錯(cuò)誤的,會(huì)導(dǎo)致鍵盤上面的工具條錯(cuò)位:

第2次彈出鍵盤時(shí):打印鍵盤高度為:

keyboardFrame height: 248.000000

這時(shí)候就是正常的高度了。

需要解決第一次異常的問題。

解決:直接取子view判斷

查看層級(jí),發(fā)現(xiàn)鍵盤window有個(gè)子view UIInputSetHostView,這就是鍵盤顯示的父view,這時(shí)候取得這個(gè)view,也就取得了鍵盤的真正高度:

- (CGFloat)keyboardHeight {
   UIWindow *keyboardWindow = [[[UIApplication sharedApplication] windows] lastObject];
   UIView *inputView = [keyboardWindow.rootViewController.view tkp_findSubview:@"UIInputSetHostView"];
   if (inputView) {
       return inputView.tkp_height;
   }
   return 0;
}

其中 tkp_findSubview: 方法為 UIView 的分類方法:

- (UIView *)tkp_findSubview:(NSString *)name {
    return [self tkp_findSubview:name resursion:NO];
}

- (UIView *)tkp_findSubview:(NSString *)name resursion:(BOOL)resursion {
    Class class = NSClassFromString(name);
    for (UIView *subview in self.subviews) {
        if ([subview isKindOfClass:class]) {
            return subview;
        }
    }

    if (resursion) {
        for (UIView *subview in self.subviews) {
            UIView *tempView = [subview tkp_findSubview:name resursion:resursion];
            if (tempView) {
                return tempView;
            }
        }
    }

    return nil;
}

總結(jié)

到此這篇關(guān)于iOS橫屏彈鍵盤的高度錯(cuò)誤異常解決的文章就介紹到這了,更多相關(guān)iOS橫屏彈鍵盤高度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Flutter?Widgets之標(biāo)簽類控件Chip詳解

    Flutter?Widgets之標(biāo)簽類控件Chip詳解

    這篇文章主要為大家介紹了Flutter?Widgets之標(biāo)簽類控件Chip詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • iOS各種ViewController控制器使用示例完整介紹

    iOS各種ViewController控制器使用示例完整介紹

    這篇文章主要為大家介紹了iOS各種ViewController控制器使用示例完整介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 談?wù)劄楹蝘OS開發(fā)別用宏來定義常量

    談?wù)劄楹蝘OS開發(fā)別用宏來定義常量

    最近在工程里看到很多不規(guī)范的使用,于是來寫一篇博客來讓不是很清楚的小朋友們,使用正確的規(guī)范開發(fā)ios,少埋點(diǎn)坑。
    2016-08-08
  • 理解Objective-C的變量以及面相對(duì)象的繼承特性

    理解Objective-C的變量以及面相對(duì)象的繼承特性

    這篇文章主要介紹了理解Objective-C的變量以及面相對(duì)象的繼承特性,文中的所說的點(diǎn)語法即是'對(duì)象名.成員變量名'這種對(duì)變量的訪問,需要的朋友可以參考下
    2016-01-01
  • iOS實(shí)現(xiàn)高效裁剪圖片圓角算法教程

    iOS實(shí)現(xiàn)高效裁剪圖片圓角算法教程

    經(jīng)??吹礁鞣N高效裁剪圓角的文章,正好之前做過一點(diǎn)數(shù)字圖像處理,所以寫個(gè)裁剪圓角的算法,下面這篇文章主要給大家介紹了關(guān)于iOS實(shí)現(xiàn)高效裁剪圖片圓角算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • iOS開發(fā)實(shí)現(xiàn)搜索框(UISearchController)

    iOS開發(fā)實(shí)現(xiàn)搜索框(UISearchController)

    這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)實(shí)現(xiàn)搜索框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • iOS下Safari點(diǎn)擊事件失效的解決方法

    iOS下Safari點(diǎn)擊事件失效的解決方法

    這篇文章主要給大家介紹了關(guān)于在iOS下Safari點(diǎn)擊事件失效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • iOS驗(yàn)證手機(jī)號(hào)的正則表達(dá)式

    iOS驗(yàn)證手機(jī)號(hào)的正則表達(dá)式

    這篇文章主要為大家詳細(xì)介紹了iOS驗(yàn)證手機(jī)號(hào)的正則表達(dá)式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • iOS中最全的各種定時(shí)器使用教程

    iOS中最全的各種定時(shí)器使用教程

    這篇文章主要給大家介紹了關(guān)于iOS中最全的各種定時(shí)器的使用教程,文中通過示例代碼介紹的非常詳細(xì),通過文中介紹的最全的定時(shí)器相信會(huì)對(duì)各位iOS開發(fā)者們帶來一定的幫助,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • iOS用UITextField切換明文/密文顯示時(shí)末尾空白的問題解決

    iOS用UITextField切換明文/密文顯示時(shí)末尾空白的問題解決

    最近在工作中遇到一個(gè)問題,利用UITextField切換明文/密文顯示時(shí)發(fā)現(xiàn)字符串后面會(huì)出現(xiàn)一段空白,所以下面這篇文章主要給大家介紹了iOS用UITextField切換明文/密文顯示時(shí)末尾空白問題的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05

最新評(píng)論

永丰县| 加查县| 汉川市| 宜君县| 华容县| 宜兴市| 东乌珠穆沁旗| 杨浦区| 日喀则市| 阿克苏市| 剑阁县| 奉新县| 师宗县| 万州区| 南和县| 西华县| 嘉义县| 东至县| 莎车县| 泰安市| 威宁| 乌海市| 德州市| 徐闻县| 昌江| 密云县| 五指山市| 井陉县| 永和县| 塔河县| 廊坊市| 大港区| 哈巴河县| 高陵县| 永福县| 柘城县| 漯河市| 遵化市| 新津县| 石狮市| 泽州县|