2015-06-15 2 views
0

Вот сделка, у меня есть UITableView, и я добавляю пользовательские ячейки с различными элементами, такими как UITextFields и другие, которые имеют UITextView. Когда нажимается текстовое поле и появляется клавиатура, я меняю содержимое набора содержимого моего UITableView, так что для пользователя будут отображаться как клавиатура, так и текстовое поле.Проблемы с изменением вложений UITableView при отображении его клавиатуры

Проблема в том, что это не работает, когда я делаю это, когда пользователь нажимает UITextView! Я пытаюсь изменить contentinset, но ничего не происходит. Вот некоторые отрывистые коды.

PD: Я делаю все, что «регистрируется для удаленного, если клавиатура не появляется». Я не буду добавлять его здесь.

- (void)keyboardWasShown:(NSNotification*)aNotification { 
NSDictionary* info = [aNotification userInfo]; 

self.keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, _keyboardSize.height, 0); } 


- (void)keyboardWillBeHidden:(NSNotification*)aNotification { 
_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); } 

ответ

0

Наряду с изменением врезки контента, Вам необходимо прокручивать грести, в котором UITextView присутствует.

В keyboardWasShown

_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, _keyboardSize.height, 0); 

NSIndexPath *indexPathOfRowContainingTextView ;//you can get the Indexpath from indexPathForCell method of UITableView 
[_uploadTableView scrollToRowAtIndexPath:indexPathOfRowContainingTextView atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

В keyboardWillBeHidden

_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); 
Смежные вопросы