import UIKit
import SDWebImage
class ViewController: UIViewController {
let widthScreen = UIScreen.main.bounds.width
let heightScreen = UIScreen.main.bounds.height
var aniImageView:UIImageView!
var mainImageView:UIImageView!
var isTap:Bool = false
override func viewDidLoad() {
super.viewDidLoad()
// 1黍瞧,使用圖像控件顯示圖片
let imageView = UIImageView(frame:CGRect(x:50, y:50, width:200, height:130))
imageView.image = UIImage.init(named: "可見")
self.view.addSubview(imageView)
self.mainImageView = imageView
//保持圖片比例
//默認(rèn) UIImageView 會(huì)拉伸圖片使其占滿整個(gè) UIImageView,如果不想讓圖片變形芽偏,可以將 ContentMode 設(shè)置為 Aspect Fit雷逆。
//設(shè)置拉伸模式 /* ScaleToFill: 填充模式,圖片不會(huì)保持原來的比例 ScaleAspectFit: 圖片保持原來的比例污尉,寬度填充膀哲,高度自適應(yīng) ScaleAspectFill: 圖片保持原來的比例往产,高度填充,寬度自適應(yīng) */ imageView.contentMode = UIViewContentMode.ScaleAspectFit
// imageView.contentMode = .scaleAspectFit
// 2某宪,改變圖片
imageView.image = UIImage.init(named: "pbg")
// 3仿村,從文件目錄中獲取圖片
let path = Bundle.main.path(forResource: "可見", ofType: "png")
let imageData = UIImage(contentsOfFile: path!)
let newImageVC = UIImageView(image: imageData)
newImageVC.frame = CGRect(x: 300, y: 50, width: 75, height: 50)
self.view.addSubview(newImageVC)
// 4,從網(wǎng)絡(luò)地址獲取圖片
//定義URL對(duì)象
let url = URL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg")
// //從網(wǎng)絡(luò)獲取數(shù)據(jù)流
let data = try! Data(contentsOf: url!)
//通過數(shù)據(jù)流初始化圖片
let newImage = UIImage(data: data)
let imageView3 = UIImageView(image:newImage)
imageView3.frame = CGRect(x: 50, y: 500, width: 150, height: 100)
self.view.addSubview(imageView3)
// imageView.sd_setImage(with: NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg")! as URL)
// imageView.sd_setImage(with: NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg") as URL!)
// imageView.sd_setImage(with: (NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg")! as URL))
// imageView.sd_setImage(with: NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg") as URL?)
// let img = UIImage(data: data,scale:1.5); //在這里對(duì)圖片顯示進(jìn)行比例縮放
// let vImg = UIImageView(image: img);
// vImg.frame.origin = CGPoint(x:20,y:40);
// //vImg.frame = CGRect(x:0,y:20,width:120,height:120);
// self.view.addSubview(vImg);
// 1)如果需要顯示app自帶的資源文件兴喂,可以直接使用UIImage的構(gòu)造函數(shù):named來直接拉取資源文件蔼囊。
// 2)如果要顯示本地或者網(wǎng)絡(luò)資源文件,則需要使用NSData衣迷,來拉取對(duì)應(yīng)文件的DATA畏鼓,最后顯示到UIImageView中去。
// 3)UIImage在構(gòu)造時(shí)壶谒,scale的參數(shù)需要進(jìn)一步理解云矫。
// 4)如果文件尺寸未知的情況下,最好不要對(duì)其width和height進(jìn)行限制汗菜∪觅鳎可使用UIView.frame.origin(CGPoint)來指定左上角坐標(biāo)。同樣陨界,也可以單獨(dú)指定UIView.frame.size來指定CGSize.
// 5)如果僅指定圖像左上角坐標(biāo)巡揍,但又想文件按比例縮放,可以使用vImg的contentMode屬性枚舉值
// 5菌瘪,使用圖像控件實(shí)現(xiàn)動(dòng)畫播放
// UIImageView 中提供了存儲(chǔ)多張圖片來創(chuàng)建動(dòng)畫的功能腮敌,具體做法是,在 animationImages 屬性中設(shè)置一個(gè)圖片數(shù)組麻车,然后使用 startAnimating 方法開始動(dòng)畫缀皱,最后用 stopAnimating 方法停止動(dòng)畫。同時(shí)动猬,使用 animationDuration 屬性中可以設(shè)置動(dòng)畫每幀切換的速度(秒)啤斗。
self.aniImageView = UIImageView()
self.aniImageView.frame=CGRect(x:50, y:250, width:200, height:150)
// //設(shè)置動(dòng)畫圖片
self.aniImageView.animationImages = [UIImage(named:"test1")!,UIImage(named:"test2")!,UIImage(named:"test3")!,UIImage(named:"可見")!,UIImage(named:"不可見")!]
// //設(shè)置每隔1秒變化一次
self.aniImageView.animationDuration=1
self.view.addSubview(self.aniImageView)
self.aniImageView.startAnimating()
// 6 UIImageView的用戶交互默認(rèn)是關(guān)閉的,也就是說添加到ImageView上的事件都不會(huì)響應(yīng)赁咙,需要我們手動(dòng)設(shè)置userInteractionEnabled屬性為真钮莲,我們給UIImageVIew添加一個(gè)點(diǎn)擊手勢(shì)來測(cè)試一下,如果注釋掉第一行彼水,點(diǎn)擊就會(huì)失去反應(yīng)
imageView.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: #selector(tapAction(tap:)))
imageView.addGestureRecognizer(tap)
}
@objc func tapAction(tap:UITapGestureRecognizer){
let small = CGRect(x:50, y:50, width:200, height:130)
let big = CGRect(x: 0, y: 0, width: widthScreen, height: heightScreen)
// if isTap == true {
// print("小")
// isTap = false
// self.mainImageView.frame = small
// }else if isTap == false{
// print("大")
// isTap = true
// self.mainImageView.frame = big
// }
isTap = !isTap
self.mainImageView.frame = isTap ? big : small
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}