我的tableView大小由自動版式(底對底的佈局指南,頂到另一個視圖等,但首先的UISearchBar頂部佈局指南)中設置: 的iOS的TableView時示出爲具有鍵盤選擇細胞錯indexPath
控制器用的tableView:
我需要改變表中的偏移時,將顯示鍵盤,使我有兩種方法:
// MARK: - Keyboard
func keyboardWasShown (notification: NSNotification) {
let info: NSDictionary = notification.userInfo!
let value: NSValue = info.valueForKey(UIKeyboardFrameBeginUserInfoKey) as! NSValue
let keyboardSize: CGSize = value.CGRectValue().size
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
self.tableView.scrollIndicatorInsets = self.tableView.contentInset
}
func keyboardWillBeHidden (notification: NSNotification) {
self.tableView.contentInset = UIEdgeInsetsZero
self.tableView.scrollIndicatorInsets = UIEdgeInsetsZero
}
它的工作,但我有問題時,鍵盤顯示。最後一個項目不能選擇,而不是我得到的前一個項目。我點擊了最後一個項目的位置,它應該導航到最後一個項目的詳細信息頁面,而是看到之前項目的詳細信息頁面。這不是所有項目的轉移,而是最後一個項目,當我過濾到只有一個項目它的工作正常。當鍵盤被隱藏(並且物品仍然被過濾)時,它也可以(它選擇正確的東西)。所以我想這個問題一定在這裏:
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
self.tableView.scrollIndicatorInsets = self.tableView.contentInset
那麼哪裏可能會出現問題?感謝您的幫助
我想你也應該更新頂部的高度,以適應搜索欄和分段控制。 – Dree
不,我只是試過了,它沒有幫助,當我滾動到頂部時,我的空間太大了。 –
您是否嘗試過從'viewDidLoad:'添加額外空間? – Dree