選擇障礙的救星 — 轉轉器!!

閱讀時間約 3 分鐘

目的:

  1. Timer倒數計時。
  2. 熟練基本的 Swift 程式語法。
  3. 熟悉 iOS App 畫面的製作。
  4. 製作多頁面 App & 頁面間傳資料的能力。
  5. 使用 UIAlertController。
  6. 透過 present 顯示以下連結提到的某一種 controller。(不包含 UIAlertController)
  7. 加入通知提醒功能。
  8. 利用 CABasicAnimation 製作特別的動畫效果。

raw-image

這次整整花了快一個禮拜,接下來來整理一下吧~

  1. Timer的使用:

raw-image

這次卡住的其中一個地方,我一直在找有沒有直接倒數的function,後來參考了其他人做的作業,才發現可以這樣做。

首先timer function的使用,最後的參數block為每經過withTimeInterval的時間後,執行的動作,這裡的timer是新建立的Timer參數,可以代表本身方程式的參數,後面接invalidate可以讓方程式停止loop,直到下次使用到此function,這可以去搞懂closure的部分比較好理解。

2.製作漸層背景:

raw-image

這裡值得注意的是,我最後用insertSublayer這部分可以使漸層背景到整個最底層不會蓋住其他圖片的建立。

3.轉盤建立與文字顯示在轉盤上:

raw-image

這裡卡了一些時間,原因是因為文字顯示的邏輯我想了一下,其實就只要角度和半徑除以二就可以顯示在中間了,不知道為啥一直鬼打牆卡住。

3. 轉盤動畫:

raw-image

利用 CABasicAnimation建立動畫,後面就是參數設定了~

answer是我讓箭頭隨機跑到一個位置,然後再顯示出來轉動後的效果,簡單來講,動畫過程跟讓圖片變換方向後的結果是分開寫出來,後面就能達到效果了。

4.增加減少選項:

raw-image

一開始我想到的是用表格的方式進行,但潘帥說之後會教相關的方式,所以我就先以不同方式進行,花比較多時間的是減少的部分,除了從原本建立的array移除之外,還要從view中顯示出來的移除,此時就能加上removeFromSuperview(),就能順利移除。

之後要再加上的是,能讓每次做過的選項儲存到後端,這部分有點困難,可能需要花更多時間,以及有沒有辦法讓多台使用者同時使用同一個轉盤。

另外這次作業真的花了點時間研究蘋果英文解釋function的程式,這真的是需要練習的經驗,因為內建的API實在太多了,自己研究出來一定會熟悉很多,也能容易找到自己要使用的function!

參考:

[Swift]捉皮丘Catch Pichu遊戲 #1 Timer, Alert Controller, AVFoundation
爸爸總是笑我們這些北部長大的小孩沒看過皮丘很俗,他說在他小時候,皮丘是很普遍的神奇寶貝,他和小夥伴們常常一起在高雄老家的水稻田間捉皮丘,秋收之後鄰居哥哥還會帶著他的小火龍來幫大家生火控窯,這些都是他們美好的兒時回憶。medium.com

GITHUB:

deblive0917/good-game
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build…github.com

    avatar-img
    1會員
    37內容數
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    dab戴伯的沙龍 的其他內容
    目的: 熟練資料傳遞的技巧。 建立日期: 這次試著多用function的方式進行,會讓程式簡潔很多。這裡可以注意到,使用到calendar function去製造出年月日的效果,這樣就可以從datepicker中取.date值放入function進行換算成生日的星座。 2. 傳資料到下個頁面
    目的: 在 viewDidLoad 裡寫程式。 2. 利用 AVPlayer 播放音樂。 3. 包含播放鍵,暫停鍵,下一首,上一首。 4. 使用 IBOutlet 和 IBAction 實現 App 的功能。 5. 畫面上至少需包含以下元件,而且程式也有使用這些元件。 text fiel
    目的: 做出漸層的背景。 mask遮罩。 做出漸層的背景 運用CAGradientLayer()建立實現漸層功能的實例。 然後UIView建立一個確切位置的框框。 根據.colors 的array可設定由哪兩個顏色形成漸層。 gradientLayer.startPoint = CGP
    這次使用UIBezierPath的功能在SwiftUI去畫一張圖,雖然我的藝術天份蠻差的,但藉由程式之手至少是可以畫出稍微相似的圖出來哈哈~ 主要運用到兩種功能畫圖: let body = UIBezierPath(arcCenter: CGPoint(x: 213, y: 213), radi
    這比較像是IBOulet和IBAction的基礎練習,比較需要注意的是: 若要設定點選按鈕時Scroll view能移動到該衣服的位置,就需要: scrollrow.setContentOffset(CGPoint(x: pagecontrol.currentPage * Int(scrollr
    目的: 1 使用 date picker & slider 做時間的魔法師,顯示自己十年的變化成長。 2 date picker 設定最小 & 最大時間,讓時間的範圍為 2009 ~ 2019。 3 滑動 slider 時,slider 會停在整數的位置,比方滑到 2010.6 時會四捨五入到
    目的: 熟練資料傳遞的技巧。 建立日期: 這次試著多用function的方式進行,會讓程式簡潔很多。這裡可以注意到,使用到calendar function去製造出年月日的效果,這樣就可以從datepicker中取.date值放入function進行換算成生日的星座。 2. 傳資料到下個頁面
    目的: 在 viewDidLoad 裡寫程式。 2. 利用 AVPlayer 播放音樂。 3. 包含播放鍵,暫停鍵,下一首,上一首。 4. 使用 IBOutlet 和 IBAction 實現 App 的功能。 5. 畫面上至少需包含以下元件,而且程式也有使用這些元件。 text fiel
    目的: 做出漸層的背景。 mask遮罩。 做出漸層的背景 運用CAGradientLayer()建立實現漸層功能的實例。 然後UIView建立一個確切位置的框框。 根據.colors 的array可設定由哪兩個顏色形成漸層。 gradientLayer.startPoint = CGP
    這次使用UIBezierPath的功能在SwiftUI去畫一張圖,雖然我的藝術天份蠻差的,但藉由程式之手至少是可以畫出稍微相似的圖出來哈哈~ 主要運用到兩種功能畫圖: let body = UIBezierPath(arcCenter: CGPoint(x: 213, y: 213), radi
    這比較像是IBOulet和IBAction的基礎練習,比較需要注意的是: 若要設定點選按鈕時Scroll view能移動到該衣服的位置,就需要: scrollrow.setContentOffset(CGPoint(x: pagecontrol.currentPage * Int(scrollr
    目的: 1 使用 date picker & slider 做時間的魔法師,顯示自己十年的變化成長。 2 date picker 設定最小 & 最大時間,讓時間的範圍為 2009 ~ 2019。 3 滑動 slider 時,slider 會停在整數的位置,比方滑到 2010.6 時會四捨五入到
    你可能也想看
    Google News 追蹤
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
    Thumbnail
    在求職過程中,許多人會遇到選擇障礙,無法決定自己的職涯方向。這篇文章提供了幾個重要的建議,幫助你克服這一困難,包括自我認可、建立個人品牌以及人脈的重要性。透過這些策略,你將能找到理想的工作機會。記住,你並不孤單,我們都在努力!
    Thumbnail
    村民餐盒,中正紀念堂捷運站附近的健康餐,菜單上大約有六款已經配置好的雙拼選擇,對於這個也想吃、那個也想品嚐的人來說好方便。
    Thumbnail
    這次要跟大家討論的議題是什麼?是關於20檔高股息ETF這麼多,選擇障礙。新手想入手高股息ETF,最友善的選擇方向是什麼?以資本利得為主是高股息嗎?那我們這一集來跟大家討論一下。最近有很多朋友在提到說,這高股息ETF現在出了一大堆,後面今年還要出更多。這到底應該怎麼去選?怎麼去看?我
    Thumbnail
    當選擇成為一種奢侈,晚餐的決定就像是一場每日的心理戲碼。在這個美食無處不在的世界裡,每一餐都是一次機會,一次冒險,一次對味蕾的承諾。
    Thumbnail
    最近這幾天,我一直在研究如何自我療癒身心的狀況。看了幾本書,也聽了幾個心理師的演說,還有心理諮商師的書,以及身心靈方面的書。當然,裡頭也有些特別怪力亂神,或是涉及前世的,這我就比較不走這塊。 今天我發現這些療癒方法,其實可以歸納出一套有系統的自我療癒技術。
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
    Thumbnail
    在求職過程中,許多人會遇到選擇障礙,無法決定自己的職涯方向。這篇文章提供了幾個重要的建議,幫助你克服這一困難,包括自我認可、建立個人品牌以及人脈的重要性。透過這些策略,你將能找到理想的工作機會。記住,你並不孤單,我們都在努力!
    Thumbnail
    村民餐盒,中正紀念堂捷運站附近的健康餐,菜單上大約有六款已經配置好的雙拼選擇,對於這個也想吃、那個也想品嚐的人來說好方便。
    Thumbnail
    這次要跟大家討論的議題是什麼?是關於20檔高股息ETF這麼多,選擇障礙。新手想入手高股息ETF,最友善的選擇方向是什麼?以資本利得為主是高股息嗎?那我們這一集來跟大家討論一下。最近有很多朋友在提到說,這高股息ETF現在出了一大堆,後面今年還要出更多。這到底應該怎麼去選?怎麼去看?我
    Thumbnail
    當選擇成為一種奢侈,晚餐的決定就像是一場每日的心理戲碼。在這個美食無處不在的世界裡,每一餐都是一次機會,一次冒險,一次對味蕾的承諾。
    Thumbnail
    最近這幾天,我一直在研究如何自我療癒身心的狀況。看了幾本書,也聽了幾個心理師的演說,還有心理諮商師的書,以及身心靈方面的書。當然,裡頭也有些特別怪力亂神,或是涉及前世的,這我就比較不走這塊。 今天我發現這些療癒方法,其實可以歸納出一套有系統的自我療癒技術。