接上一篇文章,咱們在設置中心一般會跳轉到某一個網頁承載頁面,而一般咱們會添加一些功能來提高他的體驗。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()
}
複製代碼
加載按鈕須要在頁面加載時馬上出如今正中央,而且開始旋轉指導頁面成功加載後隱藏。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()
}
複製代碼
初始化時已經綁定了打開瀏覽器的函數toSafari
,打開瀏覽器的操做就很簡單了:
@objc func toSafari(){
print("to safari")
if let url = NSURL(string:self.url) {
UIApplication.shared.open(url as URL, options: [:], completionHandler: nil)
}
}
複製代碼
複製網頁信息的方法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)
}
}
複製代碼
分享網頁的方法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