iOS學習——tableview中帶編輯功能的cell鍵盤彈出遮擋和收合問題解決,tableviewcell

來源:互聯網
上載者:User

iOS學習——tableview中帶編輯功能的cell鍵盤彈出遮擋和收合問題解決,tableviewcell

  最近在項目中經常用到UITableView中的cell中帶有UITextField或UITextView的情況,然後在這種情境下,當我們點擊螢幕較下方的cell進行編輯時,這時候鍵盤彈出來會出現遮擋待輸入的cell,導致我們無法很方便地查看到我們輸入的內容,這樣的體驗是非常不好的。這個問題在之前我們的隨筆iOS學習——鍵盤彈出遮擋輸入框問題解決方案中也有講過對應的解決方案,但是該方案在最近的應用中還有點小問題,我們在這裡重新進行處理好。

一 主控制器為UITableViewController或其子類

  首先,有一個很簡單的解決方案,就是將我們的控制器換成UITableViewController或其子類,UITableViewController中的cell當有鍵盤彈出的時候表單整體會自動進行上移,我們需要編輯的地區正好可以在鍵盤的上方,這樣我們正好也可以看到我們編輯的內容,方便我們進行修改和調整具體內容。

  但是,如果我們的整體布局並不是只有一個UITableView,或者我們在項目中需要用到MBProgressHUD架構時,我們可能就不能直接將我們的控制器設定成UITableViewController或其子類,因為MBProgressHUD架構在UITableViewController和UICollectionViewController中顯示會存在一些bug,在GitHub中的MBProgressHUD架構官方文檔中就有提到要避免將HUD添加到具有複雜視圖階層的某些UIKit視圖(如UITableView或UICollectionView),UITableViewController和UICollectionViewController中的self.view實際上就是對應的UITableView或UICollectionView,所以會出現一些莫名其妙的bug,顯示不出來或者顯示的位置不對。

原文:You can add the HUD on any view or window. It is however a good idea to avoid adding the HUD to certain UIKit views with complex view hierarchies - like UITableView or UICollectionView. Those can mutate their subviews in unexpected ways and thereby break HUD display.
翻譯:你可以在任何視圖或視窗上添加HUD。 然而,避免將HUD添加到具有複雜視圖階層的某些UIKit視圖(如UITableView或UICollectionView)是一個好主意。 這可能以意想不到的方式改變他們的subviews,從而破壞HUD顯示。

二 主控制器為UIViewController或其子類

  其實最開始我就是用的UITableViewController,結果要提示的要提示的tips總是顯示不設定的位置上,後來才得以發現的這個bug,我也很無奈

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.