2016-09-22 51 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