[Swift通天遁地]5、高級擴展-(5)獲取互補色、漸變色、以及圖片主題顏色

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-tlvjvber-ky.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftios

本文將演示第三方類庫「變色龍」建立互補色、漸變色、以及圖片主題顏色。git

首先確保在項目中已經安裝了所需的第三方庫。github

點擊【Podfile】,查看安裝配置文件。swift

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

根據配置文件中的相關配置,安裝第三方庫。微信

而後點擊打開【DemoApp.xcworkspace】項目文件。ide

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】post

如今開始編寫代碼,獲取互補色、漸變色、以及圖片主題顏色。字體

  1 import UIKit
  2 //在當前的類文件中,引入已經安裝的第三方類庫
  3 import ChameleonFramework
  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         //建立互補色或對比色
 12         complementaryAndcontrasting()
 13 
 14         //用於建立漸變顏色
 15         gradientColors()
 16 
 17         //得到圖片的主題色
 18         colorFromeImage()
 19     }
 20     
 21     //添加一個方法,用來生成互補色或對比色
 22     func complementaryAndcontrasting()
 23     {
 24         //初始化一個標籤對象,其顯示區域和根視圖相同。
 25         //該標籤對象的字體顏色將用來顯示其背景色
 26         let label = UILabel(frame: self.view.frame)
 27         //將其放置在根視圖的中心位置
 28         label.center = self.view.center
 29         //設置標籤的文字內容
 30         label.text = "Complementary Color"
 31         //設置文字的對齊方式爲居中對齊
 32         label.textAlignment = .center
 33         //設置標籤的背景顏色爲橙色
 34         label.backgroundColor = UIColor.orange
 35         
 36         //設置標籤的字體顏色,爲其背景顏色的互補色
 37         //label.textColor = UIColor(complementaryFlatColorOf:label.backgroundColor!)
 38         
 39         //設置標籤的字體顏色,爲其背景顏色的對比色
 40         label.textColor = UIColor(contrastingBlackOrWhiteColorOn: label.backgroundColor!, isFlat: true)
 41         
 42         //將標籤視圖添加到根視圖
 43         self.view.addSubview(label)
 44     }
 45     
 46      //添加一個方法,用於建立漸變顏色
 47     func gradientColors()
 48     {
 49         //初始化一個視圖對象,並設置視圖 對象的顯示區域
 50         let view = UIView(frame: self.view.frame)
 51         //設置視圖的背景顏色爲漸變顏色
 52         view.backgroundColor = UIColor(gradientStyle: .radial,//徑向漸變
 53                                        withFrame: self.view.frame, 
 54                                        andColors: [.yellow, .orange])//由黃到橙
 55         view.backgroundColor = UIColor(gradientStyle: .leftToRight,
 56                                        withFrame: self.view.frame, 
 57                                        andColors: [.yellow, .orange])
 58         //將視圖對象添加到根視圖
 59         self.view.addSubview(view)
 60     }
 61     
 62     //添加一個方法,得到圖片的主題色
 63     func colorFromeImage()
 64     {
 65         //讀取項目中的一張圖片素材
 66         let image = UIImage(named: "Pic")
 67         //初始化一個圖像視圖,用來顯示圖片素材
 68         let imageView = UIImageView(frame: CGRect(x: 0,
 69                                     y: 20, 
 70                                     width: 320,
 71                                     height: 220))
 72         //將圖片素材賦予圖像視圖
 73         imageView.image = image
 74         //將圖像視圖添加到根視圖
 75         self.view.addSubview(imageView)
 76         
 77         //從圖像視圖中得到一份扁平化的配色方案
 78         //let colors = ColorsFromImage(image!, withFlatScheme: true)
 79 
 80         //從圖像視圖中得到一份非扁平化的配色方案
 81         let colors = ColorsFromImage(image!, withFlatScheme: false)
 82         
 83         //初始化一個數值爲0的變量
 84         var dy = 0
 85         //對配色方案中的顏色進行遍歷,從而經過相同數量的視圖
 86         //顯示配色方案中的各類顏色。
 87         for color in colors
 88         {
 89             //初始化一個指定顯示區域的視圖
 90             dy += 40
 91             let frame = CGRect(x: 20, y: 220+dy, width: 280, height: 40)
 92             let view = UIView(frame: frame)
 93             //設置視圖的背景顏色,爲配色方案中的顏色
 94             view.backgroundColor = color
 95             //並將視圖添加到根視圖中
 96             self.view.addSubview(view)
 97         }
 98         
 99         //得到圖像中的平均顏色
100         let averageColor = UIColor(averageColorFrom: image!)
101         //初始化另外一個視圖對象,用來顯示平均顏色
102         let view = UIView(frame: CGRect(x: 20, y: 500, width: 280, height: 40))
103         //設置視圖的背景顏色爲平均顏色
104         view.backgroundColor = averageColor
105         //將視圖添加到根視圖中
106         self.view.addSubview(view)
107     }
108     
109     override func didReceiveMemoryWarning() {
110         super.didReceiveMemoryWarning()
111         // Dispose of any resources that can be recreated.
112     }
113 }
相關文章
相關標籤/搜索