iOS 課堂作業 從 playground 調色去背圖片
import UIKit
let typeMoonImageView = UIImageView(image: UIImage(named: "typemoon.png"))
typeMoonImageView.backgroundColor = UIColor(red: 1, green: 0, blue: 0, alpha: 0.5)
typeMoonImageView.frame = CGRect(x: 0, y: 0, width: 300, height: 100)
let patternImageView = UIImageView(image: UIImage(named: "pattern.png"))
patternImageView.frame = typeMoonImageView.frame
patternImageView.addSubview(typeMoonImageView)
typeMoonImageView.layer.borderWidth = 5
typeMoonImageView.layer.borderColor = UIColor.red.cgColor
typeMoonImageView
要去背的圖片,我是選鼎鼎大名的遊戲IP — Typemoon社的商標哈
去背後的樣子
至於怎麼去背的,我是利用Mac上的Preview去背的
記得最後去背完的檔案要轉成png檔喔
=
好了,前置作業 — 要有已去背的圖片了,接下來就是把圖片加入到Playground裡了。
加入的方法,就是打開finder,找出它,然後再按option加拖曳圖片到Playground裡的Resources資料夾
如上圖,我把素材(已去背的圖片和等一下要疊加上去的圖片[pattern.png])都放入Resources資料夾裡了。
然後開始進入code的部分。
首先,先寫程式加入圖片
import UIKit
let typeMoonImageView = UIImageView(image: UIImage(named: "typemoon.png"))
第一行寫import UIkit,是為了要加入UI的函式庫(UIkit),不然接下來的步驟,Playground會無法辨識我們寫的程式碼。import就是放在要加入的函示庫前,宣告函式庫用的。
let是swift裡宣告常數的寫法,可以不加Type來宣告。
我在此宣告一個叫typeMoonImageView的常數,這個常數名字是用駱駝峰命名法命名的。
let typeMoonImageView = UIImageView(image: UIImage(named: "typemoon.png"))
等號右邊的東西會存到左邊的常數裡。
因為這邊我要圖片,所以就宣告一個UIImageView的型別(在swift中,字首大寫的單字通常是型別(Type)),來放圖片的資料。
UIImageView中的(),參數要傳入一個UIImage的型別,這個就可以放入圖片了,所以我在name:的地方就放入我圖片的名字字串。
typeMoonImageView.backgroundColor = UIColor(red: 1, green: 0, blue: 0, alpha: 0.5)
typeMoonImageView.frame = CGRect(x: 0, y: 0, width: 300, height: 100)
然後我在typeMoonImageView的常數後面加上.,加入屬性backgroundColor,然後這個左邊的backgroundColor的型別要跟等號右邊的型別一樣,不然會出現錯誤。
這邊backgroundColor的型別是UIColor,所以右邊也呼叫UIColor。
然後在UIColor的()中設定顏色(RGB,數值:0~1)跟透明度(alpha,數值:0~1,1是完全不透明)。
現在圖片的顏色都設定好了,如下:
去背的地方加上顏色囉!
再來設定typeMoonImageView的大小
typeMoonImageView.frame = CGRect(x: 0, y: 0, width: 300, height: 100)
.frame是圖片大小跟位置的屬性。
它的型別是CGRect。
let patternImageView = UIImageView(image: UIImage(named: "pattern.png"))
加入要覆蓋的素材圖片,方法步驟跟前面一樣,就不再贅述了。
patternImageView.frame = typeMoonImageView.frame
這一行是指定patternImageView跟typeMoonImageView大小位置一樣,這樣後面幫圖片加上素材的時候,才不會出問題。
比如素材沒完全覆蓋到圖片之類的。
patternImageView.addSubview(typeMoonImageView)
在patternImageView後面,利用加.點的方式呼叫function addSubview()。
(是的,加.是叫屬性跟function的方法,加法一樣。)
(屬性和function的分辨方法:屬性名字後面沒有()、但function名字後面有(),()中可以輸入參數或常數或變數,不一定。)
這邊我們利用addSubview這個function把素材pattern.png加到TypeMoonImageView上。
如圖:
這是pattern.png的原貌:
在TM圖片中,格紋之所以會變成淡紅色,是因為背景顏色是淡紅色的關係。
typeMoonImageView
最後如果想看成果,要加typeMoonImageView這個常數到最後一行,因為它才是顯示圖片的常數。
完成啦!