2016-09-22 50 views
2

我遇到问题,在UIWebView内调整文本大小,html文件位于该包内。我已经设法在obj-c之间获得修改的脚本,但是使用swift 3虽然每次单击button时最佳值都会正确更改,但文本大小没有变化。下面是代码 -在UIWebView中调整文本大小 - Swift 3

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. 
} 

} 

任何指针感激地接受 - 谢谢你

回答

0

因为这是一个Web视图,你可以用内容为 “字体大小” 属性,

 let content = "<html><body><p><font size=30>" + webContent + "</font></p></body></html>" 
     webView.loadHTMLString(content, baseURL: nil) 

这里改变大小相应地

2

这个问题是在这里找到答案:

Resizing UIWebView text

但是我到Swift3转换,并测试了Xcode8 。下面是代码:

类的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) 
} 
+0

感谢您的回复rohit90,脚本作为我的原创,字体大小不会改变,尽管按钮在控制台中显示。有趣的是,当在你的脚本中使用URL时,我得到一个空白的白色屏幕(带有按钮),并且在增加大小时使用包HTML文件什么都没有发生(除了控制台日志记录)并且减小大小之间会在段落,但不会更改字体大小。 – Bowcaps

+0

首先尝试一下我在代码中使用的URL,让我知道这是否可行,我认为你因为这个而变得空白屏幕http://stackoverflow.com/questions/31254725/transport-security-has-blocked-a -cleartext-http – rohit90

+0

是的,允许任意负载修复了白屏问题 - 谢谢。然而,文本不会调整大小,它似乎只是在文本行之间添加空行,但实际字体仍然是固定的 - 令人困惑? – Bowcaps