Voglio impostare l'altezza di UIWebview in base al contenuto HTML. Io sono sempre la dimensione di una stringa, ma non ottenere la dimensione effettiva a causa di paragrafo, grassetto, diversa dimensione del carattere, eccCome impostare l'altezza di UIWebView in base al contenuto HTML?
risposta
Io di solito uso di questi metodi, per impostare UIWebview
frame come la sua dimensione di contenuti:
- (void)webViewDidStartLoad:(UIWebView *)webView {
CGRect frame = webView.frame;
frame.size.height = 5.0f;
webView.frame = frame;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
CGSize mWebViewTextSize = [webView sizeThatFits:CGSizeMake(1.0f, 1.0f)]; // Pass about any size
CGRect mWebViewFrame = webView.frame;
mWebViewFrame.size.height = mWebViewTextSize.height;
webView.frame = mWebViewFrame;
//Disable bouncing in webview
for (id subview in webView.subviews) {
if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
[subview setBounces:NO];
}
}
}
Vengono chiamati automaticamente (se si imposta il delegato webView
in questa classe), quando WebView
ha terminato di caricare il suo contenuto.
Perché stai andando a scorrere le visualizzazioni secondarie per trovare la vista di scorrimento? basta usare webView.scrollView. Penso inoltre che dovresti impostare i rimbalzi solo in viewDidLoad, poiché è necessario che avvenga una sola volta. (È ancora una bella risposta.) – griotspeak
Grazie per il commento - buona idea :). Il codice che ho postato è molto vecchio, dal momento in cui scrollview non era accessibile direttamente. –
- (void)viewDidLoad
{
[super viewDidLoad];
webview.delegate = self;
[webview loadHTMLString:@"<div id='foo' style='background: red'>The quick brown fox jumped over the lazy dog.</div>" baseURL:nil];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *output = [webview stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"foo\").offsetHeight;"];
NSLog(@"height: %@", output);
}
vedi anche How to determine UIWebView height based on content, within a variable height UITableView?
Ma ho UIWebview in UITableView e ogni riga ha UIWebView così come calcolo perché l'altezza della tabella è impostata prima che cellForRowAtIndex abbia chiamato. – KPIteng
provare questo codice
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
height= [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
}
Bene, ogni vista web ha un'UIScrollView incorporato, quindi vorrei provare aspettando la pagina per caricare e quindi toccare la proprietà contentSize della vista di scorrimento per ottenere l'altezza della pagina.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGFloat height = webView.scrollView.contentSize.height;
}
in questo codice cos'è height.it è una proprietà per l'altezza della vista web. –
Se hai WebView in tableviewcell, nel heightForRowAtIndexPath impostare l'altezza della cella per un'altezza di dimensioni NSAttributedString come segue.
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSAttributedString *attributedText = [NSString getHTMLAttributedString:@"HTML Content"];
CGSize size = CGSizeMake(300, CGFLOAT_MAX);
CGRect paragraphRect = [attributedText boundingRectWithSize:size
options:(NSStringDrawingUsesLineFragmentOrigin)
context:nil];
return paragraphRect.size.height;
}
+(NSAttributedString *) getHTMLAttributedString:(NSString *) string{
NSError *errorFees=nil;
NSString *sourceFees = [NSString stringWithFormat:
@"<span style=\"font-family: 'Roboto-Light';font-size: 14px\">%@</span>",string];
NSMutableAttributedString* strFees = [[NSMutableAttributedString alloc] initWithData:[sourceFees dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
documentAttributes:nil error:&errorFees];
return strFees;
}
- 1. Come ottenere il contenuto html da UIWebView?
- 2. Come determinare l'altezza di UIWebView in base al contenuto, all'interno di UITableView con altezza variabile?
- 3. Determina l'altezza di UIWebView in base al contenuto locale dinamico, all'interno di un'altezza variabile. TableViewCell
- 4. Lettura di contenuto HTML da una UIWebView
- 5. Come visualizzare il contenuto html su UIWebView IOS
- 6. Contenuto UIWebview non visibile
- 7. Divisione di un file in linux in base al contenuto
- 8. Ridimensionamento dell'altezza di UIWebView per adattarsi al contenuto
- 9. Come impostare l'offset del contenuto e la dimensione del contenuto in un UIWebView
- 10. cambia cella sfondo di jquery datatable in base al contenuto
- 11. L'intero contenuto di UIWebView incorporato in UITableView
- 12. Come ridimensionare NSTextView in base al suo contenuto?
- 13. UIWebView Inside UIScrollView Dimensioni del contenuto
- 14. Come impostare l'altezza della riga in base al suo contenuto nella tabella?
- 15. Come impostare il contenuto HTML in un iframe
- 16. Filtraggio di un elenco di stringhe in base al contenuto
- 17. Come inviare eventi da HTML in esecuzione all'interno di un UIWebView al codice Objective-C nativo?
- 18. Ritagliare l'acquisizione dello schermo PhantomJS in base al contenuto
- 19. Come ridimensionare automaticamente JFrame in base al contenuto
- 20. Dividere HTML in pagine in base alla dimensione del contenuto
- 21. Rileva la direzione del testo in base al contenuto
- 22. Come impostare l'indice selezionato JComboBox in base al valore
- 23. Ridimensionamento della finestra di SmartGWT in base al contenuto
- 24. Esiste comunque l'altezza di "autofit" dell'area di testo in base al contenuto al caricamento della pagina?
- 25. Ridimensionare dinamicamente div in base al contenuto dinamico?
- 26. UIWebView caricamento stringa html analizzata
- 27. Dimensionamento dinamico di UIWebView in base alla dimensione del carattere del contenuto
- 28. Filtraggio dei file visualizzati in OpenFileDialog in base al contenuto?
- 29. UIWebView ritardo nel caricamento del contenuto locale
- 30. rileva le modifiche al contenuto della vista di scorrimento di UIWebView Dimensione
[Che cosa hai provato?] (Http://whathaveyoutried.com) – thegrinner
Webview ottenuto una pergamena, in modo da non probabilmente bisogno di questo. – alexandresoli
Ho una vista Web in ogni riga in UITablView. Non sto ottenendo l'altezza della webview di ogni riga in altezzaForRowAtIndexPath. Quindi sono confuso come impostare l'altezza di ogni riga in heightForRowAtIndexPath. – KPIteng