2012-04-06 25 views
6

每個人都希望在彈出鍵盤時移動UITableView,但我正在尋找一種方法在彈出鍵盤時禁用自動動畫。當鍵盤彈出並導致UITableView滾動到光標(以避免阻塞它)時,我正在經歷奇怪的跳動/顛簸/不穩定的滾動行爲。iOS:在鍵盤出現時禁用UITableView動畫

我的每個UITableView單元都有一個UITextView。彈出鍵盤時,我不會提交任何其他動畫。

此時,我想完全禁用動畫並手動滾動到所需的CGPoint。

謝謝!

+0

我有一個單元格中的3行文本字段。我希望能夠在表格中添加單元格,將表格縮小到顯示鍵盤時的高度,然後將表格視圖一直滾動到底部。我目前有一個間歇性解決方案,在那裏我得到keyboardWillShow的通知,並執行.2秒動畫縮小tableview高度,並在完成時執行0.05秒的延遲請求,讓tableview一直滾動到底部。在某些情況下取決於細胞數量。只需要第一個響應者不要滾動表格。幫幫我! – cruffenach 2012-04-27 18:22:29

+0

你有沒有找到解決這個問題的辦法?我正在經歷同樣的事情,我的桌面視圖正確調整大小,但在最後執行這個奇怪的跳躍。 – 2012-08-07 20:40:45

回答

8

自動滾動代碼駐留在tableViewController中,因此無法禁用自動滾動功能。而不是從UITableViewController繼承,你可以從UIViewController繼承子類並在其中使用tableView。 如果你願意使用UITableViewController本身,你可以重寫viewWillAppear並且不要調用[super viewWillAppear]。

+1

你是一個搖滾明星。謝謝! – Jeremy 2012-10-17 18:15:55

+0

對於其他人尋找這個問題,並通過這個答案,請謹慎這樣做。它可能是唯一可以實現並且容易的事情,但是在視圖生命週期方法中調用super並不是一個好主意,比如'viewWillAppear' – simonthumper 2017-10-30 09:28:22