♯7. Playground 玩玩樂 — function 練習、addSubview
定義 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)
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 就先玩到這裡囉!