火車環島3671藍皮普快紀念品

第一次的SwiftUI練習題

--

中秋節過後去了一趟一個人的火車環島之旅,沒有買什麼紀念品,剛好最近iOS推出了SwiftUI,看到好多同學都在練習,就來畫3671藍皮普快列車吧!

遊記看這裡:

第一次的SwiftUI練習

成品:

這時候可以假裝自己擁有iPhone 11 Pro (笑)

火車繪製參考我自己拍的照片:

背景圖照片來源:Photo by freestocks.org on Unsplash

背景:

在 ZStack 裡加 Image作為背景,必須先呼叫 function resizable(),讓圖片變成可以縮放大小,使用 scaledToFit讓圖片維持原比例不變形,再用frame設定顯示大小。

火車:

火車的繪製就是一層疊一層的概念。

  1. 先畫車輪:生成 Path 時搭配參數 ellipseIn 繪製圓形。

2.再畫車廂:車廂的整體繪製使用addLine,再用closeSubpath()包起來,我會畫兩層,底層為底色(使用.fill),再疊一層框線(使用.stroke)。

3.車窗:車頭的車窗還是使用addLine再用closeSubpath()包起來,第一節車廂的車窗很小格,乾脆就畫粗線條代表車廂。

車頭車窗:

車廂車窗:

4.車身彩繪:車頭的白色弧形彩繪線條使用addQuadCurve去畫圓弧形狀,其他車身白色彩繪線依然使用addLine。

5.車燈:為了讓車燈疊在最上層,車燈是最後才畫的,一樣搭配參數 ellipseIn 繪製圓形,再用.fill加入黃色代表車燈。

畫出來的成品我還蠻滿意的,覺得很美:)

完整程式碼請見GitHub:

參考文章:

如果有值得大家參考的地方再麻煩大家幫我拍拍手喲,謝謝大家耐心閱讀🙇‍♀️

--

--

Julia Wang
彼得潘的 Swift iOS / Flutter App 開發教室

Learning Programming , Hiking , Travels , Tour , Exploring nature 『你必須要很努力,才能看起來毫不費力』