Je dois montrer du texte riche que je tire du serveur, donc j'utilise UIWebView. Maintenant, le problème est que je n'ai aucun contrôle sur la police utilisée dans UIWebView. Comment puis-je changer la police pour utiliser la police système (en la rendant cohérente avec le reste de l'application)?
Je fais quelque chose comme ça en ce moment:
myRichTextView = [[UIWebView alloc] initWithFrame:CGRectMake(x, y, width, height)];
myRichTextView.backgroundColor = [UIColor clearColor];
[myRichTextView setScalesPageToFit:NO];
[myRichTextView loadHTMLString:myString baseURL:[NSURL URLWithString:myBaseURL]];
Encore une fois, vous devez contrôler la police d'affichage. Si je ne peux pas contrôler la police, veuillez me faire part d'autres alternatives à UIWebView.
Merci
Référencez une feuille de style CSS dans votre document HTML ou placez les informations de style en haut du document HTML lui-même
Cela a fonctionné lorsque j'ai modifié la chaîne comme ceci. Votre chris droit, cela ne devrait faire aucune différence.
NSString *myDescriptionHTML = [NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<style type=\"text/css\"> \n"
"body {font-family: \"%@\"; font-size: %@;}\n"
"</style> \n"
"</head> \n"
"<body>%@</body> \n"
"</html>", @"helvetica", [NSNumber numberWithInt:kFieldFontSize], content];
J'utilise le CSS suivant dans une vue Web pour faire exactement ce que vous dites.
body
{
font-family:helvetica;
}
Mais le vôtre semble également fonctionner. Étrange. La seule différence que je peux voir est la police vs la famille de polices, mais cela ne devrait pas faire une différence.
chris.
Police système
- Apple-système sur iOS 9 et Safari OS X 10
font-family: -Apple-system;
font-family: '-Apple-system','HelveticaNeue'; // iOS 8 compatible
un autre moyen simple qui a fonctionné pour moi
UIFont *font = [UIFont systemFontOfSize:15];
NSString *htmlString = [NSString stringWithFormat:@"<span style=\"font-family:Helvetica; font-size: %i\">%@</span>",
(int) font.pointSize,
[bodyText stringWithNewLinesAsBRs]];
[myWebView loadHTMLString:htmlString baseURL:nil];
il suffit de changer
font:helvetica
à
font-family:helvetica
J'utilise
body {
font-family: 'Noteworthy-Bold';
}
Cela fonctionne bien pour ma page d'accueil (WebView), car le reste de mon application utilise également "Noteworthy-Bold" d'Apple.
Si vous souhaitez utiliser votre propre police, utilisez @ font-face et référez-vous à un fichier TTF ou EOT.
Voici ma solution facile à utiliser et à développer avec plus de paramètres de police:
myHTMLLabel = [[UIWebView alloc] initWithFrame:CGRectMake(myX,myY,myWidth,myHeight)];
myHTMLLabel.userInteractionEnabled=NO;
myHTMLLabel.scalesPageToFit=NO;
[myHTMLLabel setOpaque:NO];
myHTMLLabel.backgroundColor = myBackColor;
NSString *myHTMLText = [NSString stringWithFormat:@"<html>"
"<head><style type='text/css'>"
".main_text {"
" display: block;"
" font-family:[fontName];"
" text-decoration:none;"
" font-size:[fontSize]px;"
" color:[fontColor];"
" line-height: [fontSize]px;"
" font-weight:normal;"
" text-align:[textAlign];"
"}"
"</style></head>"
"<body> <SPAN class='main_text'>[text]</SPAN></body></html>"];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[text]" withString: myText];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontName]" withString: myFontName];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontSize]" withString: myFontSize];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontColor]" withString: myFontColorHex];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[textAlign]" withString: myFontAlign];
NSLog(@"*** renderHTMLText --> myHTMLText: %@",myHTMLText);
[myHTMLLabel loadHTMLString:myHTMLText baseURL:nil];