가변 높이 인 UIWebView
을 보유한 UITableView가 있으며 사용자는 각 웹보기의 내용을 편집 할 수 있습니다. 각 셀의 내용 (웹보기)은 내용의 높이가 contentHeight
으로 저장된 NSManagedObject
하위 클래스에 연결됩니다. 새로운 콘텐츠 집합이 처음 만들어지면 높이가 설정된 기본 데이터 집합으로 채워 지므로 문제가 없습니다.(UITableViewCell에 포함 된) UIWebView 콘텐츠의 높이 결정
내 문제는 사용자가 웹보기의 내용을 편집 할 때 발생합니다. 새로운 콘텐츠의 높이를 파악하고 이에 따라 tableview를 업데이트해야합니다. 해당 객체에 대해 저장된 contentHeight
변수를 업데이트하기위한 로직을 이미 설정했지만 신뢰할 수있는 방법으로 새 컨텐츠의 높이를 결정할 수 없습니다. 아래에서 필자가 시도한 방법 중 일부를 나열하고 작업을 수행하지 못했습니다. 어떤 도움을 크게 감상 할 수있다, 나는 이제 시간 이상에 대한 난처한 상황에 빠진 봤는데 :(
실패 방법 :
[[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] floatValue];
[[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
[[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
[[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('sdcontent').offsetHeight"] floatValue];
CGRect webViewFrame = [webView frame];
CGRect temp = webViewFrame;
webViewFrame.size.height = 1;
[webView setFrame:webViewFrame];
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
webViewFrame.size = fittingSize;
[webView setFrame:temp];