♯7. Playground 玩玩樂 — function 練習、addSubview

Photo by Artur Tumasjan on Unsplash

定義 function,印出讓自己一秒落淚的情歌歌詞

兒歌一向都很朗朗上口,來練習 function 真是再好不過了!

原始歌詞

Baby shark, doo doo doo doo doo doo. *3

Baby shark!

Mommy shark, doo doo doo doo doo doo. *3

Mommy shark!

Daddy shark, doo doo doo doo doo doo. *3

Daddy shark!

Grandma shark, doo doo doo doo doo doo. *3

Grandma shark!

Grandpa shark, doo doo doo doo doo doo. *3

Grandpa shark!

Let’s go hunt, doo doo doo doo doo doo. *3

Let’s go hunt!

Run away, doo doo doo doo doo doo. *3

Run away!

Safe at last, doo doo doo doo doo doo. *3

Safe at last!

It’s the end, doo doo doo doo doo doo. *3

It’s the end!

大家應該很輕易的可以看出要定義多少個 funtcion 吧!

func doo(){
print("doo doo doo doo doo doo.")
}
func shark(_ name:String = "baby",_ char:String=","){
print(name + " shark"+char)
}
func hunt(_ char:String=","){
print("Let's go hunt"+char)
}
func runAway(_ char:String=","){
print("Run away"+char)
}
func safeLast(_ char:String=","){
print("Safe at last"+char)
}
func end(_ char:String=","){
print("It's the end"+char)
}

定義好之後就好辦事啦!

shark("baby",",")
doo()
shark("baby","!")
shark("Mommy",",")
doo()
shark("Mommy","!")
shark("Daddy",",")
doo()
shark("Daddy","!")
shark("Grandma",",")
doo()
shark("Grandma","!")
shark("Grandpa",",")
doo()
shark("Grandpa","!")
hunt()
doo()
hunt()
doo()
hunt()
doo()
hunt("!")
runAway()
doo()
runAway()
doo()
runAway()
doo()
runAway("!")
safeLast()
doo()
safeLast()
doo()
safeLast()
doo()
safeLast("!")
end()
doo()
end()
doo()
end()
doo()
end("!")

寫完之後,我現在腦海裡都是這個旋律了XD

addSubview 練習

view 的疊加其實也很常出現,剛好可以用 Playground 來練習一下,先來挑張喜歡的圖片,我選了棋O王,沒辦法佐為實在很好看!

看了看我決定要幫塔矢亮改髮色,首先可以用Mac 內建的預覽程式去背塔矢亮的頭髮,操作方式可參考這篇,搞定之後就可以丟到 Playground 來寫程式換髮色!

程式碼如下:(請忽略我在練習的 wifi 圖片 XD)

先定義圖片,再給圖片一個 view

UIImageView繼承自 UIView,因此擁有 view 的屬性以及可以使用 view 的方法

再來用 view 的方法 .backgroundColor 幫背景上色之後,因為塔矢亮的頭髮已經被去背是透明的,自然就可以吃到背景色,製造出染髮的效果囉!

如果純色背景已經滿足不了,可以幫他換上條紋髮色!

這次我將定義圖片與 view 寫在同一行 bgImageView ,根據背景換髮色的經驗,我們是要將條紋髮色當作背後的元件,把塔矢亮放在上面,他的頭髮才會染上條紋!addSubview 要包住的,就是塔矢亮!

既然都有繼承view 的屬性自然也可以增加邊框:

鏘鏘~

順便帶一下常用的屬性:

.layer.backgroundColor: CGColor? -背景顏色

.layer.cornerRadius: CGFloat -圓角矩形角度

.layer.borderWidth: CGFloat -線條寬度

.layer.borderColor: CGColor? -線條顏色

各式屬性可以查閱:

梯形公式計算function

//梯形面積公式
func 面積(上底:Double,下底:Double,高:Double) -> Double{
return ( 上底 + 下底 ) * 高 / 2
}
面積(上底:8.0,下底:14.0,高:6)

我在寫的時候有點太順手,忘記加上 -> 所以我就直接爆錯

有錯誤就是成長的時刻,所以記錄一下。

Playground 就先玩到這裡囉!

--

--