UIToolbar swift
//
// ViewController.swift
// UILabelTest
//
// Created by mac on 15/6/23.
// Copyright (c) 2015年 fangyuhao. All rights reserved.
//
import UIKit
class ViewController: UIViewController,UIWebViewDelegate,UITextFieldDelegate{
@IBOutlet weak var btngo: UIButton!
@IBOutlet weak var webview: UIWebView!
@IBOutlet weak var txturl: UITextField!
var loadIndicator:UIActivityIndicatorView!
//进度条计时器
var ptimer:NSTimer!
//进度条控件
var progBar:UIProgressView!
override func viewDidLoad() {
super.viewDidLoad()
self.webview.delegate = self
loadIndicator = UIActivityIndicatorView(frame: CGRectMake(100, 100, 32, 32))
loadIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
self.view.addSubview(loadIndicator)
txturl.delegate = self
//构建浏览器工具条
setupBrowserToolbar()
}
func setupBrowserToolbar(){
//创建一个浏览器工具条,并设置它的大小和位置
var browserToolbar = UIToolbar(frame: CGRectMake(0, 20, 320, 44));
//将工具条添加到当前应用的界面中
self.view.addSubview(browserToolbar)
//创建图片工具条,但是不是直接使用文件名,
var path = NSBundle.mainBundle().pathForResource("back", ofType: "png")
var urlStr = NSURL.fileURLWithPath(path!)
var data = NSData(contentsOfURL:urlStr!)
var btnback = UIBarButtonItem(image: UIImage(data: data!), style: UIBarButtonItemStyle.Bordered, target: self, action: Selector("backClicked:"))
//第一个分隔按钮
var btngap1 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target:nil, action: nil)
//创建前进按钮
var btnforward = UIBarButtonItem(image: UIImage(named: "forward.png"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("forwardClicked:"))
//第二个分隔按钮
var btngap2 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
//创建重新加载按钮
var btnreload = UIBarButtonItem(image: UIImage(named: "reload.png"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("reloadClicked:"))
var btngap3=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace,target: nil, action: nil)
//创建加载停止按钮
var btnstop = UIBarButtonItem(image: UIImage(named: "stop"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("stopClicked:"))
//第四个分隔按钮
var btngap4=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace,target: nil, action: nil)
//创建进度工具条
progBar = UIProgressView(progressViewStyle: UIProgressViewStyle.Bar)
//设置UIProgressview的大小
progBar.frame = CGRectMake(0, 0, 80, 20)
//设置该进度条的初始进度为0
progBar.progress = 0
//创建使用UIView的自定义的UIBarButtonItem
var btnprog = UIBarButtonItem(customView: progBar)
//为工具条设置工具按钮
browserToolbar.setItems([btnback,btngap1,btnforward,btngap2,btnreload,btngap3,btnstop,btngap4,btnprog], animated: true)
//创建计时器对象
ptimer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: Selector("loadProgress"), userInfo: nil, repeats: true)
ptimer.invalidate()
}
func stopClicked(sender:UIBarButtonItem){
webview.stopLoading()
}
func reloadClicked(sender:UIBarButtonItem){
webview.reload()
}
func backClicked(sender:UIBarButtonItem){
webview.goBack()
}
func forwardClicked(sender:UIBarButtonItem){
webview.goForward()
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
txturl.resignFirstResponder()
println("url Changed!")
var url = txturl.text
loadUrl(url)
return true
}
func loadUrl(url:String){
var urlobj = NSURL(string: url)
var request = NSURLRequest(URL: urlobj!)
webview.loadRequest(request)
}
@IBAction func goClicked(sender: UIButton) {
txturl.resignFirstResponder()
var url = txturl.text
loadUrl(url)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func webViewDidStartLoad(webView: UIWebView) {
progBar.setProgress(0, animated: false)
ptimer.fire()
loadIndicator.startAnimating()
}
func webViewDidFinishLoad(webView: UIWebView) {
loadIndicator.stopAnimating()
progBar.setProgress(1, animated: true)
ptimer.invalidate()
}
func loadProgress(){
//如果进度满了,停止计时器
if(progBar.progress>=1.0){
//停用计时器
ptimer.invalidate()
}else{
//改变进度条的进度值
progBar.setProgress(progBar.progress+0.02, animated: true)
}
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
var alertview = UIAlertView()
alertview.title = "出错"
alertview.message = error.localizedDescription
alertview.addButtonWithTitle("确定")
alertview.show()
}
}
UIToolbar swift的更多相关文章
- iOS开发——UI篇Swift篇&UIToolbar
UIToolbar class UIToolBarUISearchBar: UIViewController,UISearchBarDelegate { var titleString:String! ...
- Swift - 工具条(UIToolbar)的用法
1,UIBarButtonItem是工具条按钮,有如下5种init初始化方法: (1)初始化为普通图片按钮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...
- Swift - 使用UIWebView和UIToolbar制作一个浏览器
使用网页控件(UIWebView)与工具栏控件(UIToolbar),我们可以自制一个小型的浏览器,其功能如下: 1,输入网址,点击“Go”按钮加载网页 2,加载过程中有进度条,同时可以点击停止按钮取 ...
- swift - UIToolbar 的用法
代码如下: 1.声明及初始化 var toolsBar = UIToolbar() toolsBar.frame = CGRect(x:, y:, width:SCREEN_WIDTH, height ...
- iOS - UIToolbar
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIToolbar : UIView <UIBarPositioning& ...
- iOS开发——UI篇Swift篇&玩转UItableView(一)基本使用
UItableView基本使用 class ListViewController: UIViewController , UITableViewDataSource, UITableViewDeleg ...
- Swift学习之常用UI的使用
Swift学习之常用UI的使用 最近笔者在开始学习苹果最新的编程语言,因为笔者认为,苹果既然出了这门语言就绝对不会放弃,除非苹果倒闭了(当然这里知识一个玩笑). 所以在不久的将来,swift绝对是iO ...
- Swift 全功能的绘图板开发
要做一个全功能的绘图板,至少要支持以下这些功能: 支持铅笔绘图(画点) 支持画直线 支持一些简单的图形(矩形.圆形等) 做一个真正的橡皮擦 能设置画笔的粗细 能设置画笔的颜色 能设置背景色或者背景图 ...
- Swift版音乐播放器(简化版),swift音乐播放器
这几天闲着也是闲着,学习一下Swift的,于是到开源社区Download了个OC版的音乐播放器,练练手,在这里发扬开源精神, 希望对大家有帮助! 这个DEMO里,使用到了 AudioPlayer(对音 ...
随机推荐
- Mir2源码详解之服务端-选择(角色)网关(SelGate)
其实,SelGate也就是 LoginGate,其源码实现完全相同.不必怀疑,市面上的都是这么做~!这里单独写这篇文章,就是为了说明这点!
- Android TestView文本文字修改实例
这里我们给大家总结了下关于Android TextView文本文字的常用两种应用,一种是像我们使用微信会看到长文件是可以折叠显示了,还有一种就是TextView文字颜色TextColor焦点效果,下面 ...
- ubuntu 12.04 64位设置兼容32位的实现
在ubuntu12.04上,要运行32的程序,需要安装32位的兼容库. 以前在10.04上成功安装过,方法是 sudo apt-get install ia32-libs 但是在12.04上遇到了困难 ...
- 第 2章 数组和 ArrayLists
数组是最通用的数据结构,它出现在几乎所有的编程语言里.在 C#语言中使用数组包括创建 System.Array 类型的数组对象,以及创建针对所有数组的抽象的基类型.Array 类提供了一套方法,这些方 ...
- sql批量修改插入数据
1.批量修改 select 'update 读者库 set 单位代码='''+新单位代码+''' where 单位代码='''+单位代码+'''' from 读者单位 ,)<'L' and is ...
- Log4net使用笔记
Log4net使用笔记 编写人:CC阿爸 2013-10-29 近来在处理项目时候,想将系统的操作日志以文本的形式记录下来,方便对系统操作记录进行追踪. 经过在网上搜索部分解决方案,大致可以归纳如 ...
- luigi学习3-使用luigid
--local-scheduler的方式只适用于开发调试阶段,当你真正要把程序部署到一个产品时,我们推荐使用luigid服务. 使用luigid服务不但能提供锁服务(防止一个任务被多个进程重复执行), ...
- uboot启动流程
uboot 的启动过程及工作原理2.1 启动模式介绍 大多数 Boot Loader 都包含两种不同的操作模式:"启动加载"模式和"下载"模式,这种区别仅 ...
- web.config的奇淫巧技
<connectionStrings configSource="db.config"/> 外部文件db.config: <connectionStrings&g ...
- python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)
1.函数对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function).函 ...