2011-12-22 29 views
0

當鍵盤顯示出來時,我想滾動我的UITableView以使文本字段不被鍵盤覆蓋。我知道如何滾動的tableView和contentInset等我無法計算滾動的距離。UITableViewCell中的UITextField的原始值

我有鍵盤尺寸(從UIKeyboardDidShowNotification)。但是,我無法爲正在編輯的文本字段獲取有用的原始值。在UITextField傳遞給textFieldDidBeginEditing的起源是沒有幫助的:價值,無論是同多數民衆贊成正在編輯的文本字段中。 textField.superview.origin也沒有幫助。

如何獲取正在編輯的textField的原點的有用值?

我將使用此值以及鍵盤高度來確定滾動的距離。

回答

2

我個人認爲最好的是改變表視圖​​的框架,使它完全不被鍵盤隱藏(你可以看看鍵盤框架並根據它改變表視圖​​框架)。然後滾動使用scrollToRowAtIndexPath:atScrollPosition:animated:從而使細胞可見表視圖。

這樣UITableView處理什麼實際內容偏移應該是你的。

+0

聽起來不錯。任何確定要滾動到哪個indexPath的首選方法?我想我會在'textFieldDidBeginEditing'和'didRotateFromInterfaceOrientation'中滾動tableView。 – SundayMonday 2011-12-23 00:14:33

1

如果您的行高和標題高度都相同,您可以簡單地獲取行值並將其乘以行高以獲得正確的原點。如果你使用可變的行高/節頭,那麼這種方法會變得更加複雜。

第二種方法,在我打字時由MattJGalloway發佈,就是改變tableview的框架,然後讓tableView滾動自己。這也是我的首選方法。

相關問題