UIWebView中的网页内容被截断

时间:2015-12-19 16:57:23

标签: ios swift uiscrollview uiwebview scaling

我在使用WebView的内容时遇到了一些困难。 看起来网页的左侧部分被切断了,但在iPhone上的safari中它被正确显示(图片1和2)。约束设置正确。我还尝试将UIWebView移出PageViewController,但页面仍被切断。只有在打开此页面时才会出现此问题。

可以向右滚动,但如果我尝试向左滚动页面会被切断,正如我已经说过的那样。

UIWebView的代码:

class LoginWebViewController: UIViewController, UIWebViewDelegate {

//MARK: CLASSES
let userDefaults = NSUserDefaults.standardUserDefaults()

//OUTLETS
@IBOutlet weak var webView: UIWebView!
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!

//IDENTIFIERS
let mainAppCycleSegueIdentifier = "showMainAppCycle"

/**
Assigning Delegates
*/
override func viewDidLoad() {
    super.viewDidLoad()

    webView.delegate = self

}

/**
Detecting correct URL for segue!
*/
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

    let URLString = request.URL?.absoluteString

    if URLString!.containsString(RESPONSE_URL) {
        print("Token URL Loaded!")
        self.performSegueWithIdentifier(mainAppCycleSegueIdentifier, sender: self)

        if !userDefaults.boolForKey("HasLaunchedOnce") {
            userDefaults.setBool(true, forKey: "HasLaunchedOnce")
        }
    }

    return true
}

func webViewDidFinishLoad(webView: UIWebView) {
    activityIndicator.stopAnimating()
    let url = webView.request?.URL?.absoluteString
    if url!.containsString(URL_WHERE_THE_PROBLEM_OCCURS) {

    }
}

/**
Automatically loading starting URL once the View appears
*/
override func viewWillAppear(animated: Bool) {

    let URLforRequest = NSURL(string: URL_TO_THE_AUTHENTICATION_SERVER)

    let request = NSURLRequest(URL: URLforRequest!)

    webView.loadRequest(request)
}
}

提前感谢您的帮助!

编辑:

由于我没有足够的声誉来发布超过2个链接,我不得不将它们放入谷歌驱动器上的文档中:Document with links on Google Drive 它只包含有关此问题的imgur图像链接。

2 个答案:

答案 0 :(得分:0)

// I hope you it will work 
override func viewDidLoad() {
  super.viewDidLoad()

  webView.delegate = self
  webview.scalesPageToFit = true
 // webview.contentMode = UIViewContentMode.ScaleToFill /* try with different options as per your requirement UIViewContentMode.ScaleAspectFill,UIViewContentMode.ScaleAspectFit

}

答案 1 :(得分:0)

我知道这是旧的,但如果其他人像我一样有这个问题,我发现webview rect比视图大小要大。代码抓住了全屏视图控制器的界限,但它应该从父节点获取边界。

改为抓住正确的界限,一切都很好。

我建议你在那里放一个断点并检查webview框架并将其与你的真实框架相匹配。