1. 程式人生 > >[Swift通天遁地]五、高階擴充套件-(8)ImageView(影象檢視)的各種擴充套件方法

[Swift通天遁地]五、高階擴充套件-(8)ImageView(影象檢視)的各種擴充套件方法

本文將演示影象和影象檢視在下載、壓縮、裁剪方面的擴充套件。

首先確保在專案中已經安裝了所需的第三方庫。

點選【Podfile】,檢視安裝配置檔案。

1 platform :ios, '12.0'
2 use_frameworks!
3 
4 target 'DemoApp' do
5     source 'https://github.com/CocoaPods/Specs.git'
6     pod 'EZSwiftExtensions'
7 end

根據配置檔案中的相關配置,安裝第三方庫。

然後點選開啟【DemoApp.xcworkspace】專案檔案。

在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】

現在開始編寫程式碼,依次使用影象型別的各個擴充套件方法。

  1 import UIKit
  2 //在當前的類檔案中,引入已經安裝的第三方類庫
  3 import EZSwiftExtensions
  4 
  5 class ViewController: UIViewController {
  6 
  7     override func viewDidLoad() {
  8         super.viewDidLoad()
  9         // Do any additional setup after loading the view, typically from a nib.
10 //影象檢視的一些擴充套件方式 11 uiImageViewExample() 12 //影象型別的擴充套件 13 uiImageExtensions() 14 //對圖片進行裁切 15 cropImage() 16 } 17 18 //新增一個方法,影象檢視的一些擴充套件方式 19 func uiImageViewExample() 20 { 21 //從專案中讀取一張圖片素材 22 let image = UIImage(named: "
Girl")! 23 //初始化一個影象檢視,並設定影象檢視的座標、待顯示的圖片。 24 //在此設定影象檢視的寬度為200,高度為等比例縮放。 25 let imageView = UIImageView(x: 0, y: 0, image: image, scaleToWidth: 200) 26 //通過呼叫影象檢視物件的圓角方法, 27 //將影象檢視修改成一個圓角檢視。 28 imageView.roundSquareImage() 29 //設定影象檢視位於根檢視的中心位置 30 imageView.center = self.view.center 31 //將影象檢視新增到父檢視中 32 self.view.addSubview(imageView) 33 } 34 35 //新增一個方法,快速下載網路圖片 36 func downloadImage() 37 { 38 //初始化一個影象檢視,並設定影象檢視的顯示區域 39 let imageView = UIImageView(x: 0, y: 0, w: 320, h: 568) 40 41 //通過影象檢視物件的從網址下載圖片的方法,下載指定網址的圖片。 42 //imageView.imageWithUrl(url: "http://images.apple.com/v/apple-watch-nike/a/images/overview/features_large.jpg") 43 44 //將影象檢視新增到根檢視 45 self.view.addSubview(imageView) 46 47 //初始化一個圖片,作為影象檢視的佔位圖片。 48 let placeholder = UIImage(named: "background")! 49 //通過影象檢視物件的從網址下載圖片的方法,下載指定網址的圖片。 50 //並設定影象檢視的佔位圖片 51 imageView.imageWithUrl(url: "http://images.apple.com/v/apple-watch-nike/a/images/overview/features_large.jpg", 52 placeholder: placeholder)//佔位圖片 53 } 54 55 //新增一個方法,演示對影象型別的擴充套件。 56 func uiImageExtensions() 57 { 58 //從專案中讀取一張圖片 59 let image = UIImage(named: "background")! 60 //輸出圖片的位元組數 61 print(image.getSizeAsBytes()) 62 //輸出圖片的千位元組數 63 print(image.getSizeAsKilobytes()) 64 65 //通過影象物件的壓縮方法,可以壓縮影象的體積 66 let newImage = UIImage(data: image.compressImage(rate: 0.5)!)! 67 //在控制檯輸出壓縮後的影象的千位元組數 68 print(newImage.getSizeAsKilobytes()) 69 70 //初始化一個影象檢視物件,並設定影象檢視物件的顯示區域 71 let imageView = UIImageView(x: 0, y: 0, w: 320, h: 568) 72 //使用影象檢視顯示壓縮後的圖片 73 imageView.image = newImage 74 //將影象檢視物件新增到根檢視 75 self.view.addSubview(imageView) 76 } 77 78 //新增一個方法,對圖片進行裁切 79 func cropImage() 80 { 81 //從專案中讀取一張圖片 82 let image = UIImage(named: "Girl")! 83 //在控制檯輸出圖片的原始尺寸 84 print(image.size) 85 //通過圖片物件的裁切方法,裁切指定區域的圖片內容 86 let croppedImage = image.croppedImage(CGRect(x: 140, y: 160, w: 200, h: 320)) 87 //在控制檯輸出圖片在裁切後的尺寸 88 print(croppedImage?.size as Any) 89 90 //初始化一個影象檢視物件,並是設定影象檢視物件的顯示區域。 91 let imageView = UIImageView(x: 60, y: 40, w: 200, h: 320) 92 //該影象檢視將被用來顯示裁切後的圖片 93 imageView.image = croppedImage 94 //將影象檢視新增到根檢視 95 self.view.addSubview(imageView) 96 } 97 98 override func didReceiveMemoryWarning() { 99 super.didReceiveMemoryWarning() 100 // Dispose of any resources that can be recreated. 101 } 102 }