键盘显示时更改UITableView插件的问题

时间:2015-06-15 11:02:04

标签: ios objective-c uitableview keyboard uitextview

这是交易,我有一个UITableView,我添加了一个自定义单元格,其中包含不同的元素,如UITextFields和其他具有UITextView的元素。单击文本字段并出现键盘时,我更改了UITableView的contentInset,以便用户可以看到键盘和文本字段。

问题是,当用户单击UITextView时,它似乎无法正常工作!我尝试更改内容集但没有任何反应。这是一些剪切代码。

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); }

1 个答案:

答案 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);