陣列-問答題(沈玉琳冷笑話)

Doo
彼得潘的 Swift iOS / Flutter App 開發教室
3 min readMar 9, 2017

畫面上顯示3個 label,一個題號,一個問題 label,一個答案 label。2個 button,一個 ”下一題 ”button,一個 ”顯示答案 ” button。全部5個問題,問題會循環。一開始答案 label空白,點選 ”顯示答案 ”button後才會顯示答案。

這次的作業要練習 Array(陣列) 和Dictionary 的結合~我的問答題是”沈玉琳冷笑話”

首先建立@IBOutlet連線

再來建立一個struct

裡面宣告 question跟 answer兩個變數, 初始值都讓它們為空值

讓題目可以從陣列中的第一個值開始讀取,因此宣告變數count的初始值為0,並列出一個存取題目跟答案的陣列

程式啟動時為了要將 題號 、問題 及 答案讀到三個Label標籤裡,因此在viewDidLoad( )寫了一個函式(載入題號、題目及答案) nextQuestion( )

函式 nextQuestion( )

nextQuestion()函式裡要寫些什麼呢?

(1)questionLabel.text = qnasArray[count].question

從陣列中取出題目,把值指派給questionLabel

(2)answerLabel.text = qnasArray[count].answer

從陣列中取出答案,把值指派給answerLabel

(3)顯示題號(因為陣列順序是從編號0開始,所以count+1就會是現在的題號)

但不可一開始就將答案接曉,Label有一個屬性 isHidden 設定為 true 時,可將文字隱藏

接著是 "顯示答案" 跟 "下一題" 兩個按鈕 用@IBAction連個線

顯示答案

其實就是將開始文字的隱藏 顯示出來 只需要將isHidden 設定 為 false 即可

下一題

讀取陣列資料的順位+1,當讀取超過第5筆資料時~從頭開始~將count歸0

執行nextQuestion()函式,將資料讀入

完工

https://github.com/DOO019/hk09

--

--