記錄一下開發(fā)中掉進(jìn)去的小坑坑

1、 頁(yè)面跳轉(zhuǎn),不能再ViewDidLoad中進(jìn)行,例如下面代碼:

- (void)viewDidLoad {
    [super viewDidLoad];
 
    self.view.backgroundColor = [UIColor blueColor];
    
    SViewController *sc = [[SViewController alloc] init];
    [self presentViewController:sc animated:YES completion:nil];
    
}

這段代碼讓人失望,不會(huì)跳轉(zhuǎn)的。把跳轉(zhuǎn)寫到別的生命周期函數(shù),或者其他事件方法中即可。

2、 第三方鍵盤高度的問題

項(xiàng)目中用到了UITextView輸入欄,但是當(dāng)鍵盤彈出來時(shí)會(huì)擋住UITextView,因此需要對(duì)鍵盤彈出進(jìn)行處理,具體做法就是監(jiān)聽系統(tǒng)發(fā)出的關(guān)于鍵盤的通知??梢杂猛粋€(gè)通知監(jiān)聽彈出和收起,也可以分別監(jiān)聽。根據(jù)通知中字典的key值可以取到鍵盤的高度,然后對(duì)frame做相應(yīng)的調(diào)整或者對(duì)約束進(jìn)行修改。

問題來了。

對(duì)于第三方輸入法,比如我用的搜狗輸入法,iOS9.3.5,iPhone5,系統(tǒng)會(huì)發(fā)出3個(gè)通知,給出3個(gè)高度,因此你會(huì)看到屏幕上方一塊黑色區(qū)域一閃而過,影響體驗(yàn)。獲取到通知內(nèi)容如下:

2016-09-02 15:20:20.752 [2898:1049771] {
    UIKeyboardAnimationCurveUserInfoKey = 7;
    UIKeyboardAnimationDurationUserInfoKey = "0.25";
    UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 0}}";
    UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 568}";
    UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 568}";
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 568}, {320, 0}}";
    UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 568}, {320, 0}}";
    UIKeyboardIsLocalUserInfoKey = 1;
}
2016-09-02 15:20:21.005 [2898:1049771] {
    UIKeyboardAnimationCurveUserInfoKey = 7;
    UIKeyboardAnimationDurationUserInfoKey = 0;
    UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";
    UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 568}";
    UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 460}";
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 568}, {320, 0}}";
    UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 352}, {320, 216}}";
    UIKeyboardIsLocalUserInfoKey = 1;
}
2016-09-02 15:20:21.125 [2898:1049771] {
    UIKeyboardAnimationCurveUserInfoKey = 7;
    UIKeyboardAnimationDurationUserInfoKey = 0;
    UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 256}}";
    UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 460}";
    UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 440}";
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 352}, {320, 216}}";
    UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 312}, {320, 256}}";
    UIKeyboardIsLocalUserInfoKey = 1;
}

3次獲取到的高度是0,216,256。
解決辦法,只使用第三次獲取的值。具體操作有很多,我采用UIKeyboardFrameEndUserInfoKey獲取到的高度減去UIKeyboardFrameBeginUserInfoKey獲取到的高度,差值小于100,并且高度大于0,就視為第三次獲取到的值。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 《裕語(yǔ)言》速成開發(fā)手冊(cè)3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 28,743評(píng)論 5 20
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,271評(píng)論 4 61
  • 《ilua》速成開發(fā)手冊(cè)3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 1...
    葉染柒丶閱讀 11,501評(píng)論 0 11
  • 【今日檢視 】 今日三只青蛙 1.對(duì)接親子領(lǐng)域教練式課程 2.深圳教練項(xiàng)目客戶溝通 3.慧合團(tuán)隊(duì)溝通開課前文宣等事...
    特舒閱讀 273評(píng)論 0 0
  • 1 好多人說,大叔怎樣才能得到你近距離的指導(dǎo)? 今天就給你們說實(shí)話吧,我希望帶的人,先得有三條。 第一不能玻璃心。...
    秋葉大叔閱讀 1,014評(píng)論 3 10

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