Search code examples
iosobjective-cswiftuiwebviewwkwebview

How to change WKWebView or UIWebView default font


What font does UIWebView and WKWebView use by default? I would like to be able to change that. But I don't want to do it in the html string, instead I want to have something like:

// obj-c
[webView setFont:[UIFont fontWithName:@"GothamRounded-Bold" size:14]

// swift
webView.setFont(UIFont(name: "GothamRounded-Bold", size: 14))

is there such property or some other way?


Solution

  • You can use your UIFont object (so you can set it and modify more easily), but wrap the HTML in a span instead; font tags have been deprecated since HTML 4.01.

    UIFont *font = [UIFont fontWithName:@"GothamRounded-Bold" size:14];
    

    Assuming you already have the NSString *htmlString created, you can use the font's properties:

    htmlString = [NSString stringWithFormat:@"<span style=\"font-family: %@; font-size: %i\">%@</span>",
                                            font.fontName,
                                            (int) font.pointSize,
                                            htmlString];
    

    Alternatively, you could just supply the values instead of using a UIFont object:

    htmlString = [NSString stringWithFormat:@"<span style=\"font-family: %@; font-size: %i\">%@</span>",
                                            @"GothamRounded-Bold",
                                            14,
                                            htmlString];