寫APP那件事#10.【健康護照】

Daisy
彼得潘的 Swift iOS / Flutter App 開發教室
8 min readAug 17, 2020

使用 IBOutlet,IBAction & 亂數創作有趣的 App

練習項目:

1.性別(男/女)控制view背景顏色

2.溫度slider顯示數字,根據數字變化顏色

3.根據問題判斷,人像顏色及狀態

4.ID為亂碼產生

5.NEW-新增一筆資料,更新畫面

6.DATE-右上角帶入年月日

越做越上手~ 太感人了 🎉
import UIKitclass blueViewController: UIViewController {


@IBOutlet weak var timetext: UILabel!

@IBOutlet weak var nametext: UITextField!

@IBOutlet weak var tempertureState: UILabel!
@IBOutlet weak var healthState: UITextField!
@IBOutlet weak var idNumber: UITextField!
@IBOutlet weak var viewBackground: UIView!
@IBOutlet weak var photoFile: UIImageView!
@IBOutlet weak var tempertureDegree: UILabel!

@IBOutlet weak var sliderDegree: UISlider!
@IBOutlet weak var aboardOption: UISegmentedControl!
@IBOutlet weak var placeOption: UISegmentedControl!
@IBOutlet weak var travelOption: UISegmentedControl!
@IBOutlet weak var illnessOption: UISegmentedControl!
override func viewDidLoad() {
super.viewDidLoad()

let today=Date()
let dateFormatter=DateFormatter()
dateFormatter.dateFormat="MM/dd/yyyy"
timetext.text!=dateFormatter.string(from: today)

// Do any additional setup after loading the view.
}
//性別(男/女)控制view的背景顏色
@IBAction func countGender(_ sender: UISegmentedControl) {

let numberGender=sender.selectedSegmentIndex
switch numberGender {
case 0:
viewBackground.backgroundColor=UIColor.systemBlue
case 1:
viewBackground.backgroundColor=UIColor.systemRed
default:
viewBackground.backgroundColor=UIColor.white
}
}

//溫度顯示數字,呈現標語
@IBAction func changeDegree(_ sender: UISlider) {
let degree=sender.value

let showdegree=String(format:"%.1f",degree)

tempertureDegree.text!=showdegree

switch degree {
case 37.0...38.0:
tempertureDegree.textColor=UIColor.systemOrange
tempertureState.text!="注意體溫"
tempertureState.textColor=UIColor.systemOrange
case 38.0...39.0:
tempertureDegree.textColor=UIColor.systemRed
tempertureState.text!="體溫過高"
tempertureState.textColor=UIColor.systemRed
default:
tempertureDegree.textColor=UIColor.black
tempertureState.text!="體溫正常"
tempertureState.textColor=UIColor.black
}

}


//判斷:三個以上有(紅色),一個以上有(橘色) 全無(綠色)
//狀態:呈現對應文字及顏色
var sumaboard=Int()
var sumplace=Int()
var sumtravel=Int()
var sumillness=Int()


@IBAction func showOption(_ sender: UISegmentedControl) {



if sender==aboardOption{
sumaboard=sender.selectedSegmentIndex
} else if sender==placeOption{
sumplace=sender.selectedSegmentIndex
}
else if sender==travelOption{
sumtravel=sender.selectedSegmentIndex

}
else if sender==illnessOption{
sumillness=sender.selectedSegmentIndex

}

let sum=sumaboard+sumplace+sumtravel+sumillness

let imageview0=UIImageView(image: UIImage(named: "0"))
let imageview1=UIImageView(image: UIImage(named: "1"))
let imageview2=UIImageView(image: UIImage(named: "2"))
let imageview3=UIImageView(image: UIImage(named: "3"))


switch sum {
case 3,4:
photoFile.image=imageview3.image

healthState.text!="危險"
healthState.backgroundColor=UIColor.red
case 1,2:
photoFile.image=imageview2.image
healthState.text!="注意"
healthState.backgroundColor=UIColor.orange
case 0:
photoFile.image=imageview1.image
healthState.text!="安全"
healthState.backgroundColor=UIColor.green

default:
photoFile.image=imageview0.image
}


}




@IBAction func reNew(_ sender: UIButton) {


tempertureDegree.text!=String("37")
tempertureDegree.textColor=UIColor.black
sliderDegree.value=37
aboardOption.selectedSegmentIndex=0
placeOption.selectedSegmentIndex=0
travelOption.selectedSegmentIndex=0
illnessOption.selectedSegmentIndex=0
healthState.text!=""
healthState.backgroundColor=nil

viewBackground.backgroundColor=UIColor.white

let imageview0=UIImageView(image: UIImage(named: "0"))

photoFile.image=imageview0.image


idNumber.text!="NO."+Int.random(in: 0...1000).description
idNumber.backgroundColor=UIColor.white

nametext.text!=""
tempertureState.text!=""


}


}

參考1.日期寫法

GitHub連結:

--

--