Frage

Ich habe Rich-Text zu zeigen, dass ich vom Server ziehen, also verwende ich UIWebView. Das Problem ist jetzt, dass ich keine Kontrolle über die Schriftart haben, die in UIWebView verwendet wird. Wie kann ich die Schriftart ändern Systemschriftart zu verwenden (so dass es mit dem Rest der Anwendung konsistent)?

Ich mache so etwas wie dies im Moment:

myRichTextView = [[UIWebView alloc] initWithFrame:CGRectMake(x, y, width, height)];
myRichTextView.backgroundColor = [UIColor clearColor];
[myRichTextView setScalesPageToFit:NO];
[myRichTextView loadHTMLString:myString baseURL:[NSURL URLWithString:myBaseURL]];

Auch hier müssen die Display-Schrift zu steuern. Wenn ich die Schrift nicht kontrollieren können, lassen Sie es mich andere Alternativen zu UIWebView kennen.

Danke

War es hilfreich?

Lösung

Referenz CSS-Stylesheets in Ihrem HTML-Dokument oder legen Sie die Stilinformationen in die Oberseite des HTML-Dokuments selbst

Andere Tipps

Es funktionierte, wenn ich die Zeichenfolge wie folgt geändert. Ihr Recht, chris, sollte es keinen Unterschied machen.

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

Ich verwende die folgende CSS in einer Web-Ansicht zu tun genau das, was Sie sagen.

body
{
    font-family:helvetica;
}

Aber Ihr sieht das wie sollte es auch funktionieren. Seltsam. Die einzige Unterschied I ist die Schriftart vs font-family sehen kann, aber das nicht einen Unterschied machen.

chris.

Systemschriftart

-Apple-System auf iOS 9 & Safari OS X 10

font-family: -apple-system;
font-family: '-apple-system','HelveticaNeue'; // iOS 8 compatible

Ich habe eine Methode , den Text in einem HTML-Körper mit dem richtigen Stil wickelt für eine gegebene UIColor und UIFont. Es basiert auf Mustafa Antwort .

Es wird wie folgt verwendet:

NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>"
                                           textFont:[UIFont systemFontOfSize:10]
                                          textColor:[UIColor grayColor]];
[webView loadHTMLString:htmlString baseURL:nil];

weitere einfache Möglichkeit, die für mich gearbeitet

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

nur ändern

font:helvetica

font-family:helvetica

ich

body {
        font-family: 'Noteworthy-Bold';
    }

Dies funktioniert gut für meine über-Seite (WebView), wie der Rest meiner App nutzt auch Apples "Noteworthy-Bold".

Wenn Sie Ihre eigene Schriftart verwenden, die Verwendung von @ font-face machen und zu einer TTF oder EOT-Datei verweisen.

Hier ist mein einfach zu bedienen und einfache Lösung mit mehr Schrifteinstellungen zu erweitern:

                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];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top