swift浏览器
2017-01-08 19:34
381 查看
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)
}
}
}
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 UI专项训练20 WebView浏览器
- Swift - 使用UIWebView和UIToolbar制作一个浏览器
- swift 地图应用开发 --- 浏览器webkit
- Swift实现的网络图片浏览器
- Swift - 使用UIWebView和UIToolbar制作一个浏览器
- ActiveForm 让exe运行在web浏览器中
- js和.Net判断浏览器
- 使用浏览器统计
- JavaScript之浏览器调试
- 【Android】通过 Intent 调用浏览器打开链接
- 浏览器默认样式对比表
- swift中字符与字符串(Character和String)
- Swift入门(六)——字典(Dictionary)
- 浏览器知识
- [快速学会Swift第三方库] SQLite.swift篇
- PHP 通过HTTP_USER_ANENT获取浏览器及设备信息
- 安卓访问浏览器数据
- Swift学习笔记(1):基础部分
- java后台调用JS代码判断浏览器版本是否低于IE9,低版本跳转不同页面