ich Inhalte in eine UIWebView mit dem folgenden Aufruf Laden:UIWebView Dokument bleibt Höhe der höchsten Inhalt
NSString *detailHtmlString = [NSString stringWithFormat:@"<html><head><style>body {background: black;color: white;line-height: 1.4em; font-family: sans-serif; margin: 0; padding: 0 0 30px 0;width: 280px;} p {margin-top: 10px;}</style></head><body id=\"content\">%@</body></html>",[currentWeek objectForKey:@"post_content"]];
[weekDetailController.movie_detail loadHTMLString:detailHtmlString baseURL:nil];
Dann, nachdem sie es fertig geladen:
- (void) webViewDidFinishLoad:(UIWebView *)sender {
[self performSelector:@selector(calculateWebViewSize) withObject:nil afterDelay:0.1];
}
- (void) calculateWebViewSize {
[weekDetailController.movie_detail sizeToFit];
float newHeight = [[weekDetailController.movie_detail stringByEvaluatingJavaScriptFromString :@"document.getElementById(\"content\").offsetHeight"] floatValue];
newHeight += 300; //height of the other elements
NSLog(@"Height: %f",newHeight);
CGRect frame = weekDetailController.movie_detail.frame;
NSLog(@"Height was: %f",frame.size.height);
frame.size.height = newHeight;
weekDetailController.movie_detail.frame = frame;
[scrollView.scrollView setContentOffset:CGPointZero];
[scrollView.scrollView setContentSize:CGSizeMake(frame.size.width, frame.size.height)];
}
Dies funktioniert gut die erste Zeit, zu der die Ansicht geladen wird, aber in nachfolgenden Ansichten, wenn unterschiedliche Inhalte in die UIWebView geladen wurden (mit dem gleichen Aufruf wie oben), gibt der JavaScript-Aufruf für die Höhe immer größere Werte zurück - auch wenn der Inhalt kleiner ist. Es gibt immer noch die Höhe der größten Menge an Inhalt, der war irgendwann in der Aussicht gewesen. Ich habe versucht, eine leere HTML-Zeichenfolge in die Ansicht zu laden, um sie zu "löschen", aber das scheint auch nicht zu helfen.
Alle Hinweise wären willkommen!
Uhmm ... Du stellst newHeight nicht in den obigen Code zurück, sondern fügst lediglich 300 hinzu ... – Altealice
whoops - ging beim Entfernen von kommentiertem Code über Bord und entfernte eine Zeile (unkommentiert), die newHeight setzte - ursprünglicher Post wurde geändert –