Swift 3 WebView

Mat*_*wen 25 ios swift swift3

所以我刚刚更新到新的Xcode8,Swift3但现在我的网页视图不起作用.这是我使用的代码:

UIWebView.loadRequest(webView)(NSURLRequest(URL: NSURL(string: "http://hardwirestudios.com")!))
Run Code Online (Sandbox Code Playgroud)

现在给我这两个错误:

'NSURL'不能隐式转换为'URL'; 你的意思是使用'as'来显式转换? - 'NSURLRequest'不能隐式转换为'URLRequest'; 你的意思是使用'as'来明确转换?

ped*_*uan 37

对于这种情况,请将您的行重新键入:

yourWebView.loadRequest(URLRequest(url: URL(string: "http://hardwirestudios.com")!))
Run Code Online (Sandbox Code Playgroud)

...并将yourWebView变量重命名为一个,实际使用的是.

在Swift 3.0中,使用URLURLRequest,因为几乎所有都NS被删除了.


Vas*_*huk 26

WebView示例:

使用StoryBoard

ViewController.swift

import UIKit

class ViewController: UIViewController, UIWebViewDelegate {

    @IBOutlet weak var webView: UIWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        webView.delegate = self
        if let url = URL(string: "http://apple.com") {
            let request = URLRequest(url: url)
            webView.loadRequest(request)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Main.storyboard

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<dependencies>
    <deployment identifier="iOS"/>
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
    <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
    <!--View Controller-->
    <scene sceneID="tne-QT-ifu">
        <objects>
            <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="stackoverflow_39682344" customModuleProvider="target" sceneMemberID="viewController">
                <layoutGuides>
                    <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                    <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                </layoutGuides>
                <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
                    <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <subviews>
                        <webView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xr8-sF-fyd">
                            <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        </webView>
                    </subviews>
                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstItem="xr8-sF-fyd" firstAttribute="bottom" secondItem="wfy-db-euE" secondAttribute="top" id="A3n-Xx-65O"/>
                        <constraint firstAttribute="trailing" secondItem="xr8-sF-fyd" secondAttribute="trailing" id="OZa-E2-XIe"/>
                        <constraint firstItem="xr8-sF-fyd" firstAttribute="top" secondItem="y3c-jy-aDJ" secondAttribute="bottom" id="Tn3-gw-V4p"/>
                        <constraint firstItem="xr8-sF-fyd" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" id="tYl-t1-QdU"/>
                    </constraints>
                </view>
                <connections>
                    <outlet property="webView" destination="xr8-sF-fyd" id="s1G-80-juD"/>
                </connections>
            </viewController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
        </objects>
        <point key="canvasLocation" x="136.80000000000001" y="137.18140929535232"/>
    </scene>
</scenes>
</document>
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述

编程

import UIKit

class ViewController: UIViewController, UIWebViewDelegate {

    var webView: UIWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        webView = UIWebView(frame: UIScreen.main.bounds)
        webView.delegate = self
        view.addSubview(webView)
        if let url = URL(string: "http://apple.com") {
            let request = URLRequest(url: url)
            webView.loadRequest(request)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

其他

WKWebView示例

  • 嗯,不适合我.我在webview.delegate = self line上打开可选值时,意外地找到了'ol'意外发现的nil (2认同)