#2製作結合酷炫動畫效果的電子書 App-歌手介紹

一、Demo影片

三、基本介紹

這次的主題主要是以方便作出為主,因為本身沒有太多時間,所以我選了“歌手介紹”當作主題,做出了一款介紹歌手的App。

四、功能介紹

1)歌手/樂團Icon清單

可滑動的歌手/樂團頭像列表,透過點擊更改下方推薦曲的畫面。

這裡我利用了ScrollView搭配ForEach將每個歌手呈現出來,利用OnTapGesture監聽現在被點選的歌手是誰。

2)專輯清單、介紹

畫面下方的推薦區,透過點擊歌手/樂團的頭像更改成該歌手/樂團的專輯,透過點擊可以進入專輯的介紹畫面。

這裡我是利用ScrollView搭配LazyVGrid呈現照片牆的感覺,且每一個區塊都有配上NavigationLink,只要點擊就可以切換畫面。

3)歌手列表、介紹

歌手列表,所有歌手/樂團的列表,透過點擊可以進入該歌手/樂團的介紹頁面。

利用TabView的TabItem將App分成首頁及歌手區域,此方法透過TabItem的tag可以實現,只要宣告一個@State狀態的變數讓TabView去監聽就好。

下方附上相關程式碼:

點擊該歌手/樂團的區塊,就可以進入介紹畫面,歌手/樂團的大頭照利用Page實現多張照片的分頁效果。畫面右上方則是與該歌手/樂團相關的社群網站List,點擊便可跳轉至該社群網站之頁面,進入此介紹畫面時會有easeInOut的淡出動畫效果。畫面下方則是歌手/樂團介紹,透過ScrollView便可實現。

下方附上相關程式碼:

需要注意的是如果沒有替List設定大小,有可能因為文字及Icon長寬問題導致左邊的大頭貼與List會有沒對齊的問題,如果強制使用alignment: .top的方式去調整會與下方的介紹區塊之間產生空白。

五、心得

其實這次最麻煩的是struct定義及navigationLink,由於我還只是新手,因此當需要上個畫面的變數資料時,傳資料變成了一個燙手山芋。之後是透過 @Binding並在傳遞的變數前加上”$”才將資料傳送成功。不過也因此對這方面變得熟悉許多。

--

--