我有一个 UIViewController,里面有一个自定义 UITextView(CodeTextView),在这个文本视图的左边我有一个自定义 UITableView(LinesTableView)。LinesTableView 包含与 CodeTextView 对齐的行号。
当我开始编辑 CodeTextView 并出现键盘时,我编辑了两个视图的大小:
- (void)keyboardAppears:(NSNotification *)notification
{
[_codeTextView setFrame:CGRectMake(30, 0, 290, self.view.frame.size.height - 216.0f)];
[_linesTableView setFrame:CGRectMake(0, 0, 30, self.view.frame.size.height - 216.0f)];
}
编辑 CodeTextView 并按下按钮时,我会更新 LinesTableView:
- (void)updateLines
{
NSString *plainText = self.text;
NSArray *components = [plainText componentsSeparatedByString:@"\n"];
int lines = components.count;
if([[components lastObject] isEqualToString:@""]) lines--;
_linesTableView.lines = lines;
[_linesTableView reloadData];
}
但是,当显示键盘并按 Enter 键时,CodeTextView 会调整为原始高度!当我注释掉 [_linesTableView reloadData] 时,一切正常。因此,当我重新加载 LinesTableView 时,LinesTableView 和 CodeTextView 以某种方式恢复了它们的原始高度。
我不知道如何解决这个问题。我认为这并不难,但我想不出办法做到这一点。谁能帮我解决这个问题?
提前致谢!:)