#23 Q&A 選擇題
認識海洋生物(二)
作品截圖:
APP功能說明:
🌟 選錯時顏色反灰;選對時邊框變黃色,才可以按 Next Button
🌟 Slider跟Label顯示題目進度
🌟 題目順序跟選項順序每次出現時都要不一樣
⭐️ add auto layout-NSLayoutAnchor(2023. Jul)
Recording GIF:
這次的作業是延續上一篇的問答題作業
在struct裡,建立一個屬性 option 的 array 字串,及一個屬性 answer
基本上就是研究好設定跟讀取Button文字的方式,就可以開始寫作業了
🌟 設定 Button 文字:.setTitle(“String”, for: .normal)
寫入新的題目選項,但選項 Button有四個,要重複四次,使用到迴圈
🌟 讀取 Button 文字:.currentTitle
判斷是否符合正確答案
問題與解決:
答對時答案要顯示邊框,下一題邊框要消失,這一點卡了比較久
問題:
若是輸入
showChoiceButtons[i].layer.isHidden = true
會發現一開始所有的Button就都不見了!!
所以這方法行不通~
解決:
概念是因為四個答案都有可能是正確答案,所以一開使四個選項都要設定好邊框跟顏色,所以要用到迴圈
🌟 方法一:一開使把邊框寬度設為3,邊框顏色設為全透明(一樣把他們寫進function的迴圈裡)
//設定選項Button邊框寬度是3showChoiceButtons[i].layer.borderWidth = CGFloat(3)//設定選項Button邊框為透明showChoiceButtons[i].layer.borderColor = CGColor(gray: 1, alpha: 0)
然後若是答題時選對答案,就改變邊框顏色,讓它顯示出來(這裡是寫在IBAction裡,所以sender可以代表被觸發的Button)
//設定正確答案邊框變為黃色
sender.layer.borderColor = CGColor(red: 1, green: 200/255, blue: 0/255, alpha: 1)
🌟 方法二:一開使把邊框寬度設為0,邊框顏色設為黃色(一樣寫進function的迴圈裡)
//設定選項Button邊框寬度是0
showChoiceButtons[i].layer.borderWidth = CGFloat(0)
//設定選項Button邊框為黃色
showChoiceButtons[i].layer.borderColor = CGColor(red: 1, green: 200/255, blue: 0/255, alpha: 1)
然後若是答題時選對答案,就改變邊框寬度變成3,讓它顯示出來(這裡是寫在IBAction裡,所以sender可以代表Button)
//設定正確答案邊框寬度變成3
sender.layer.borderWidth = CGFloat(3)
⭐️ 新增另一個參考文章,有關膠囊狀Button的做法:
建立IBOutlet:
ViewDidLoad:
在option裡輸入各個題目的選擇題的選項
設定 function:
建立IBAction:
Upload GitHub:
Reference:
🌟 Sep 25. 加入答對的選項變成黃色邊框,移除答對選項字體變深色功能