Resizing UIWebView text

倖福魔咒の 提交于 2019-12-22 14:12:53

问题


I am trying to let the user resize the text of the given web page. I am using Swift in Xcode 6. HTML file:

<!DOCTYPE html>
    <html>
    <body>

        <h1>My First Heading</h1>

        My first paragraph.

    </body>
</html>

and here is the swift function I am calling to try to change the size:

func changeWebViewFontSize(decOrInc: Int, webView: UIWebView)
{
//1 = decreace
//2 = increace
var textFontSizeTemp = defaults.objectForKey("textFontSize") as Int

switch decOrInc
{
case 1: //when decrease
    defaults.setObject(textFontSizeTemp - 1, forKey: "textFontSize")
case 2: //when increase
    defaults.setObject(textFontSizeTemp + 50, forKey: "textFontSize")
default:
    break
}

var jsString = "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust=\(textFontSize)"
//var jsString = "alert('test')"
webView.stringByEvaluatingJavaScriptFromString(jsString)
}

I know that the javascript is being run because when I ran an alert() function in the javascript, it worked. Please help me find out what is wrong with my code!


回答1:


I wrote an example like this which does the font resizing (increasing the size on tapping a button):

class webViewController: UIViewController {

@IBOutlet weak var webView: UIWebView!

@IBOutlet weak var increase: UIButton!

var defaults  = ["textFontSize":12]

@IBAction func btnIncreaseTapped(sender: AnyObject) {
    changeWebViewFontSize(2,webView: webView)
}

override func viewDidLoad() {
    super.viewDidLoad()

    let url = NSURL(string: "http://stackoverflow.com/questions/28245483/resizing-uiwebview-text/28245982?noredirect=1#comment44873831_28245982")


    let urlRequest = NSURLRequest(URL: url!)

    webView.loadRequest(urlRequest)        

}

func changeWebViewFontSize(decOrInc: Int, webView: UIWebView)
{
    //1 = decreace
    //2 = increace
    var textFontSizeTemp = defaults["textFontSize"]! as Int


    switch decOrInc
    {
    case 1: //when decrease
        textFontSizeTemp  = textFontSizeTemp - 1
    case 2: //when increase
        textFontSizeTemp = textFontSizeTemp + 50
    default:
        break
    }

    defaults["textFontSize"] = textFontSizeTemp


    var jsString = "document.getElementsByTagName('body')[0].style.fontSize='\(textFontSizeTemp)px'"
    webView.stringByEvaluatingJavaScriptFromString(jsString)
    }
}


来源:https://stackoverflow.com/questions/28245483/resizing-uiwebview-text

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!