爲網頁承載頁面添加更多功能

OneSwift - iOS Tips Based On Swiftgit

接上一篇文章,咱們在設置中心一般會跳轉到某一個網頁承載頁面,而一般咱們會添加一些功能來提高他的體驗。github

1.添加菊花加載的效果web

2.添加跳轉到Safari的功能瀏覽器

3.添加複製連接的功能bash

4.添加分享網頁的功能app

首先,以WebViewController爲例,咱們要建立一個UIWebView;而後建立了三個功能按鈕在左側、一個關閉頁面的按鈕在右側,而且爲他們分別綁定;加載按鈕的顯示和隱藏直接經過代碼實現。頭部狀態的代碼以下:async

class WebViewController: UIViewController,UIWebViewDelegate{
    let spinner = UIActivityIndicatorView()
    @IBOutlet weak var WebView: UIWebView!

    @IBAction func CloseAction(_ sender: Any) {
        self.dismiss(animated: true, completion: nil)
    }

    @IBAction func SafariAction(_ sender: Any) {
        self.toSafari()
    }

    @IBAction func CopyAction(_ sender: Any) {
        self.toCopy()
    }

    @IBAction func MoreAction(_ sender: Any) {
        self.toMore()
    }


複製代碼

1、添加菊花加載的效果

加載按鈕須要在頁面加載時馬上出如今正中央,而且開始旋轉指導頁面成功加載後隱藏。ide

先加在頁面加載時馬上出現加載菊花,代碼以下:函數

override func viewDidLoad() {
        super.viewDidLoad()

        //菊花按鈕
        spinner.activityIndicatorViewStyle = .gray
        spinner.center = view.center
        spinner.hidesWhenStopped = true
        view.addSubview(spinner)
        spinner.startAnimating()

        self.loadWeb()
        // Do any additional setup after loading the view.
}
複製代碼

以後webViewDidFinishLoad檢測了頁面加載的狀態,當加載完成後馬上隱藏而且中止菊花旋轉,代碼以下:ui

func webViewDidFinishLoad(_ webView: UIWebView) {
        print("web load finish")
        self.spinner.stopAnimating()
    }
複製代碼

2、添加跳轉到Safari的功能

初始化時已經綁定了打開瀏覽器的函數toSafari,打開瀏覽器的操做就很簡單了:

@objc func toSafari(){
        print("to safari")

        if let url = NSURL(string:self.url)  {

            UIApplication.shared.open(url as URL, options: [:], completionHandler: nil)
        }

}
複製代碼

3、添加複製連接的功能

複製網頁信息的方法toCopy,咱們能夠將標題和連接同時複製,代碼以下:

@objc func toCopy(){
        print("to copy")
        //就這兩句話就實現了
        let paste = UIPasteboard.general
        let str = self.urlTitle+":"+self.url
        print(str)
        paste.string = str
        let alertController = UIAlertController(title: NSLocalizedString("Copy Success!",comment: "Copy Success!"),message: nil,preferredStyle: .alert)
        //顯示提示框
        self.present(alertController, animated: true, completion: nil)
        //兩秒鐘後自動消失
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) {
            self.presentedViewController?.dismiss(animated: false, completion: nil)
        }


}
複製代碼

4、添加分享網頁的功能

分享網頁的方法toMore,採用了相似於分享應用的方式,這是這裏的內容咱們改成網頁的信息,好比網頁的標題、連接、頭圖,代碼以下:

@objc func toMore(){
       print("to more")

       let shareVC:UIActivityViewController = UIActivityViewController(activityItems: [self.urlTitle,self.urlImage,self.url], applicationActivities: nil)
       self.present(shareVC, animated: true, completion: {
           print("more success")
       })
   }
複製代碼

一個特性三個功能是否是很簡單?固然你須要再添加一個關閉按鈕。

GitHub:OneSwift - iOS Tips Based On Swift

微博:xDEHANG

相關文章
相關標籤/搜索