//
// ViewController.swift
// Demo
//
// Created by gang.zhou on 2018/9/22.
// Copyright © 2018年 gang.zhou. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
private var button:UIButton? = nil
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
view.backgroundColor = UIColor.black
button = UIButton.init(frame: CGRect.init(x: (view.frame.width * 0.1), y: (view.frame.height - 40)/2, width: (view.frame.width * 0.8), height: 40))
button!.setTitle("This is button,click me!", for: .normal)
button!.backgroundColor = UIColor.yellow
button!.setTitleColor(UIColor.red, for: .normal)
view.addSubview(button!)
button!.addTarget(self, action:(#selector(touchDown)), for: UIControl.Event.touchDown)
button!.addTarget(self, action:(#selector(touchUp)), for: UIControl.Event.touchUpInside)
button!.addTarget(self, action:(#selector(touchUp)), for: UIControl.Event.touchUpOutside)
downloadProgress = UIProgressView.init(frame: CGRect.init(x: view.frame.width * 0.1, y: 200, width: view.frame.width * 0.8, height: 20))
view.addSubview(downloadProgress!)
}
private var downloadProgress:UIProgressView? = nil
@objc func touchDown(){
if let button = button {
button.backgroundColor = UIColor.cyan
}
}
@objc func touchUp(){
if let button = button {
button.backgroundColor = UIColor.yellow
}
download()
}
func download(){
let mURLSession = URLSession.init(configuration: .default, delegate: self, delegateQueue: nil)
mURLSession.downloadTask(with: URL.init(string: "https://vscode.cdn.azure.cn/stable/553cfb2c2205db5f15f3ee8395bbd5cf066d357d/VSCode-darwin-stable.zip")!).resume()
}
}
extension ViewController:URLSessionDownloadDelegate {
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
}
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
if let downloadProgress = self.downloadProgress {
DispatchQueue.main.async {
downloadProgress.setProgress((Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)), animated: true)
}
}
}
}
网友评论