web-dev-qa-db-fra.com

Développement iPhone - Définition de la police UIWebView

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

45
Mustafa

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

22
Michael

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];
103
Mustafa

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.

15
PyjamaSam

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
11
Leslie Godwin

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];
6
Mashhadi

il suffit de changer

font:helvetica

à

font-family:helvetica

4
Rob

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.

2
Michael Biermann

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];
2
Al-Noor Ladhani