사용자 지정 UITextView (CodeTextView)있는 UIViewController 있고 사용자 지정 UITableView (LinesTableView)이 텍스트보기 왼쪽. LinesTableView에는 CodeTextView에 정렬 된 줄 번호가 들어 있습니다.사용자 지정 UITextView 입력 할 때 크기 조정
나는 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)];
}
을 내가 버튼을 누를 때, 나는 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와 CodeTextView는 LinesTableView를 다시로드 할 때 원래 높이를 되 찾는다.
이 문제를 해결하는 방법을 모르겠습니다. 나는 그것이 어렵지 않다고 생각하지만 나는 이것을 할 수있는 방법을 생각해 낼 수 없다. 아무도 이것으로 나를 도울 수 없습니까?
미리 감사드립니다. :)
두 뷰를 모두 UIView에 넣었습니다.하지만이 뷰의 크기를 조정하면 두 뷰가 같은 크기로 유지됩니다. 내가 'subviews autoresize'및 '클립 subviews'상자를 확인했습니다. 프로그래밍 방식으로 높이를 조정해도 작동하지 않습니다. 왜 그런지 알고 있니? – Devos50