swift浏览器
来源:互联网 发布:淘宝专业版模板代码 编辑:程序博客网 时间:2024/06/16 09:51
UIBarButtonItem有五种初始化方法
1、 UIBarButtonItem.init(image: UIImage?, style: UIBarButtonItemStyle, target: Any?, action: Selector?) 初始化一个普通的图片按钮
2、 UIBarButtonItem.init(image: UIImage?, landscapeImagePhone: UIImage?, style: UIBarButtonItemStyle, target: Any?, action: Selector?)初始化一个普通的图片按钮,但是为了提供一个备选团横屏使用
3、UIBarButtonItem.init(title: String?, style: UIBarButtonItemStyle, target: Any?, action: Selector?)普通的按钮的文本按钮初始化方法
4 UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem, target: Any?, action: Selector?)初始化方法,提供了一些预置的按钮类型,供你选择,比如撤销、重做、编辑等
5、UIBarButtonItem.init(customView: UIView) 实在没有你想要的按钮类型和样式?你可以让这个按钮编程任意一个UIView
import UIKit
class ViewController: UIViewController,UIWebViewDelegate,UITextFieldDelegate {
@IBOutlet weak var btngo: UIButton!
@IBOutlet weak var webview: UIWebView!
@IBOutlet weak var txturl: UITextField!
@IBOutlet weak var loadIndicator: UIActivityIndicatorView!
var ptimer : Timer!
var progBar:UIProgressView!
override func viewDidLoad() {
super.viewDidLoad()
webview.backgroundColor = UIColor.gray
btngo.isEnabled = false
loadIndicator.isHidden = true
self.webview.delegate = self
loadIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
txturl.delegate = self
setUPBrowserToolBar()
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
let url = textField.text
loadUrl(url: url!)
return true
}
func loadUrl(url:String) {
let urlobj = URL.init(string: url)
let rquest = URLRequest.init(url: urlobj!)
webview.loadRequest(rquest)
}
@IBAction func goClicked(_ sender: Any) {
txturl.resignFirstResponder()
let url = txturl.text
loadUrl(url: url!)
}
func webViewDidStartLoad(_ webView: UIWebView) {
progBar.setProgress(0, animated: false)
ptimer.fire()
loadIndicator.startAnimating()
loadIndicator.isHidden = false
}
func webViewDidFinishLoad(_ webView: UIWebView) {
loadIndicator.stopAnimating()
loadIndicator.hidesWhenStopped = true
progBar.setProgress(1, animated: true)
ptimer.invalidate()
}
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
loadIndicator.stopAnimating()
loadIndicator.hidesWhenStopped = true
print("出错了")
}
func setUPBrowserToolBar(){
//创建一个浏览器工具条,并设置它的大小和位置
let browserToolBar = UIToolbar.init(frame: CGRect.init(x: 0, y: 50, width: self.view.frame.size.width, height: 30))
self.view.addSubview(browserToolBar)
//创建图片工具条,但是不是直接使用文件名,而是用NSData方式初始化UIImage
let backtn = UIBarButtonItem.init(title: "返回", style: UIBarButtonItemStyle.plain, target: self, action: #selector(backClicked(_:)))
//第一个分隔按钮
let btngap1 = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
//创建前进按钮
let btnforward = UIBarButtonItem.init(title: "前进", style: UIBarButtonItemStyle.plain, target: self, action: #selector(forwardClicked(_:)))
//第二个分隔按钮
let btngap2 = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
//重新加载按钮
let btnreload = UIBarButtonItem.init(title: "刷新", style: UIBarButtonItemStyle.plain, target: self, action: #selector(reloadClick(_:)))
//第三个分隔按钮
let btngap3 = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
//创建加载停止按钮
let btnstop = UIBarButtonItem.init(title: "停止", style: UIBarButtonItemStyle.plain, target: self, action: #selector(stopClick(_:)))
//第四个分隔按钮
let btngap4 = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
progBar = UIProgressView.init(progressViewStyle: UIProgressViewStyle.bar)
progBar.frame = CGRect.init(x: 0, y: 0, width: 80, height: 20)
//初始进度
progBar.progress = 0
let btnprog5 = UIBarButtonItem.init(customView: progBar)
browserToolBar.backgroundColor = UIColor.gray
browserToolBar.setItems([backtn,btngap1,btnforward,btngap2,btnreload,btngap3,btnstop,btngap4,btnprog5], animated: true)
ptimer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(loadPRogress), userInfo: nil, repeats: true)
}
func backClicked(_ sender:UIBarButtonItem){
webview.goBack()
}
//前进
func forwardClicked(_ sender:UIBarButtonItem) {
webview.goForward()
}
//刷新
func reloadClick(_ sender:UIBarButtonItem){
webview.reload()
}
//加载停止
func stopClick(_ sender:UIBarButtonItem){
webview.stopLoading()
}
func loadPRogress(){
if progBar.progress >= 1.0 {
ptimer.invalidate()
}else{
progBar.setProgress(progBar.progress + 0.02, animated: true)
}
}
}
- swift浏览器
- swift之图片浏览器
- 用Swift实现一个简单的浏览器
- swift UI专项训练20 WebView浏览器
- Swift 写一个简单的浏览器
- Swift之微信朋友圈图片浏览器
- 窥探Swift之使用Web浏览器编译Swift代码以及Swift中的泛型
- iOS项目开发实战(Swift)—简单浏览器
- Swift - 使用UIWebView和UIToolbar制作一个浏览器
- SWIFT
- swift
- Swift
- Swift
- swift
- Swift
- swift
- Swift
- swift
- 2017.1.8linux下的C--结构体
- CSS干货系列(一)基本语法
- Unrecognized Windows Sockets error: 0: JVM_Bind
- LeetCode 328. Odd Even Linked List
- 【DDoS】
- swift浏览器
- ubuntu16.04下mysql5.7支持utf-8编码格式配置文件修改步骤
- TCP协议详解
- 位逆序算法
- 5.Hibernate级联操作
- ionic环境搭建
- 数据库事务的隔离级别
- Java集合随笔
- 线性代数——矩阵的逆