簡體   English   中英

當鍵盤出現BUG時,將表格視圖滾動到頂部

[英]Scroll table view row to top when keyboard appears BUG

我在每個單元格中都有一個帶有UITextViewsUITableView 我想將用戶正在編輯UITextView的單元格移到表視圖的頂部。

這很容易通過以下方式實現:

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0);

但是我有一個很奇怪的問題,在搜索時找不到任何東西。 不管我將contentInset設置為哪種方法,該單元格都不會向上移動,直到鍵盤沒有完成向屏幕上的動畫顯示。這似乎是鍵盤動畫具有某種優先級。

經過研究,我發現即使同時設置鍵盤的動畫效果,同時設置contentOffset也會使單元格實際上向上移動。

有人可以向我解釋這種行為,還是解釋發生了什么事?

謝謝!

當您UITextfieldUITextview將開始編輯方法調用時,您可以使用UITableView方法

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0);
tableView.scrollToRowAtIndexPath(NSIndexPath, atScrollPosition: UITableViewScrollPosition, animated: Bool)

您可以滾動到頂部。 我希望這能幫到您

此類場景的最佳方法是安裝IQKeyboardManager Pods,當您單擊UITextView時,它將自動滾動tableview,您無需編寫其他任何內容。

您正在將UITableViewViewController一起使用。 但是要實現您想要的最佳方法,是使用UITableViewController因為, 當用戶輸入任何數據時它會自動向上滾動(滾動到鍵盤並專注於編輯文本字段)。

嘗試觀察鍵盤通知UIKeyboardWillShowNotification和UIKeyboardWillHideNotification,將代碼放入選擇器方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM