调整UIWebView中的文本大小 – Swift 3

我有一个问题,在UIWebView调整文本大小, html文件位于包中。 我已经设法让一个修改过的脚本在obj-c ,但是使用swift 3时文本大小没有变化,尽管每次点击button最佳值都会正确变化。 这是代码 –

 import UIKit class ViewController: UIViewController { @IBOutlet var resWebView: UIWebView! @IBOutlet weak var increaseFont: UIBarButtonItem! @IBOutlet weak var decreaseFont: UIBarButtonItem! var defaults = ["textFontSize":40] @IBAction func fontButtonPressed(sender: UIBarButtonItem) { var textFontSize = defaults["textFontSize"] switch sender.tag { case 1 : //when decrease textFontSize = textFontSize! - 10 case 2 ://when increase textFontSize = textFontSize! + 50 default: break } defaults["textFontSize"] = textFontSize print(textFontSize) var jsString = "document.getElementsByTagName('body')[0].style.fontSize='\(defaults["textFontSize"])px'" resWebView.stringByEvaluatingJavaScript(from: jsString) } override func viewDidLoad() { super.viewDidLoad() let resFilePath = Bundle.main.url(forResource: "ResilienceHandbook", withExtension: "html"); let resRequest = URLRequest(url: resFilePath!); resWebView.loadRequest(resRequest); // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

任何指针都感激不尽 – 谢谢

由于这是一个Web视图,您可以使用“font size”属性包装内容,

  let content = "

" + webContent + "

" webView.loadHTMLString(content, baseURL: nil)

这里相应地改变大小

这个问题在这里得到解答:

调整UIWebView文本的大小

但是我将它转换为Swift3并在Xcode8上进行了测试。 这是代码:

class ViewController:UIViewController {

 @IBOutlet weak var webView: UIWebView! var defaults = ["textFontSize":12] override func viewDidLoad() { super.viewDidLoad() let url = NSURL(string: "https://stackoverflow.com/questions/39638019/resizing-text-in-uiwebview-swift-3") let urlRequest = NSURLRequest(url: url! as URL) webView.loadRequest(urlRequest as URLRequest) } func changeWebViewFontSize(zoomInOrZoomOut: Int, webView: UIWebView) { //1 = decreace //2 = increace var textFontSizeTemp = defaults["textFontSize"]! as Int switch zoomInOrZoomOut { case 1: //when decrease textFontSizeTemp = textFontSizeTemp - 20 case 2: //when increase textFontSizeTemp = textFontSizeTemp + 20 default: break } defaults["textFontSize"] = textFontSizeTemp let jsString = "document.getElementsByTagName('body')[0].style.fontSize='\(textFontSizeTemp)px'" webView.stringByEvaluatingJavaScript(from: jsString) } //UIButton Action @IBAction func zoomOutButton_TouchUpInside(_ sender: AnyObject) { changeWebViewFontSize(zoomInOrZoomOut: 1,webView: webView) } @IBAction func zoomInButton_TouchUpInside(sender: AnyObject) { changeWebViewFontSize(zoomInOrZoomOut: 2,webView: webView) }