2016-03-28 40 views
2

我有一個包含uitableview的uiviewcontroller,這個uitableview充滿了包含文本框的自定義單元格。鍵盤隱藏tableview單元格中包含textfields

這種觀點在故事板加載爲酥料餅的,所以其行爲是:

iPad的 - 如果鍵盤被加載,並且鍵盤隱藏當前編輯細胞,細胞自動升至所以它是可見的,而不管其在桌面視圖中的位置

iPhone - 它不,如果鍵盤隱藏單元格,tableview不會移動。

任何人都可以提出一個優雅的方式嗎?

感謝

回答

0

您可以使用表格視圖方法scrollToRowAtIndexPath

func scrollToRowAtIndexPath(_ indexPath: NSIndexPath, 
      atScrollPosition scrollPosition: UITableViewScrollPosition, 
        animated animated: Bool) 

滾動表視圖時,文本字段將成爲第一個響應者,例如:

let indexPath = NSIndexPath(forItem: 4, inSection: 0) 
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Bottom, animated: true) 

見有關更多信息,請訪問UITableView參考 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/#//apple_ref/doc/uid/TP40006943-CH3-SW44

我希望這可以幫助你。隨意詢問是否有任何不清楚的地方。

+1

除非我錯誤地實現了它,否則如果單元格位於列表底部,則不起作用。如果單元格位於列表的中間位置,但不適用於底部3或4 –

+0

您是否嘗試將滾動位置設置爲.Top? –

+0

我做到了,頂部和底部的底部細胞停留在桌面底部 –

1

我使用的Xcode 8.2.1類似的問題,迅速3鍵盤隱藏UITextViewbecomeFirstResponder(),花了幾個小時,弄清楚是什麼問題沒有任何的運氣,終於創造了新的測試項目,單UITableViewController和它的工作,此後重新創建表視圖控制器在故事板 - 細胞開始滾動到允許出現與預期指定的文本視圖下方的鍵盤空間...

也許一些與佈線阻止其正常工作