<결과>
<코드>
//
// ViewController.swift
// FirstNewApp
//
// Created by Allen H on 2021/11/10.
//
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var mainLabel: UILabel!
@IBOutlet weak var slider: UISlider!
// 숫자(선택된 초)를 관리하기 위한 변수
var number = 0
// 타이머 객체를 담기 위한 변수
var timer: Timer?
// 앱의 화면에 들어오면 처음 실행시키는 함수
override func viewDidLoad() {
super.viewDidLoad()
configureUI()
}
// UI셋팅 함수
func configureUI() {
mainLabel.text = "초를 선택하세요"
slider.value = 0.5
}
// 슬라이더 값이 바뀔때마다 호출되는 함수
@IBAction func sliderChanged(_ sender: UISlider) {
let seconds = Int(sender.value * 60)
mainLabel.text = "\(seconds) 초"
number = seconds
}
// 스타트버튼을 누르면 실행하는 함수
@IBAction func startButtonTapped(_ sender: UIButton) {
timer?.invalidate()
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(doSomethingAfter1Second), userInfo: nil, repeats: true)
}
// 다음 동작의 실행 함수
@objc func doSomethingAfter1Second() {
if number > 0 {
number -= 1
print(Float(number) / Float(60))
slider.value = Float(number) / Float(60)
mainLabel.text = "\(number) 초"
} else {
mainLabel.text = "초를 선택하세요"
number = 0
//print(number)
timer?.invalidate()
AudioServicesPlaySystemSound(SystemSoundID(1000))
}
}
// 리셋버튼이 눌리면 실행되는 함수
@IBAction func resetButtonTapped(_ sender: UIButton) {
timer?.invalidate()
mainLabel.text = "초를 선택하세요"
slider.value = 0.5
number = 0
}
}
<기억할것>
1. 소리나게 하는 법(시스템 사운드)
>>시스템사운드란? 애플에서 제공해주는 사운드
import AVFoundation
AudioServicesPlaySystemSound(SystemSoundID(사운드숫자))
2. 해당시간 간격으로 반복실행하는 함수
let timer = Timer.scheduledTimer(timeInterval: 반복될 시간간격, target: self(대체로 셀프), selector: #selector(반복될 함수명), userInfo: nil(대체로 닐), repeats: true)
selector: #selector(반복될 함수명) >> 여기서 해당하는 함수명은 objc를 달고 선언한다 (#selector함수가 오브젝트c문법)
<코드 복습>


보고 따라한 인강 출처 남깁니당
'iOS앱만들기' 카테고리의 다른 글
| 네이버지도API 활용하기 (0) | 2022.11.16 |
|---|---|
| 로그인화면/코드로UI짜기 (0) | 2022.11.07 |
| 텍스트필드 (델리게이트) 앱만들기 (참고하여) >> 개인정보 입력 앱 만들기 (2) | 2022.10.17 |
| 텍스트필드 (델리게이트) 앱만들기 (1) | 2022.10.17 |
| 타이머앱 만들기(참고하여) >> 3초마다 알림울리는 앱 만들기 (0) | 2022.10.14 |