iOS앱만들기

타이머앱 만들기(참고하여) >> 3초마다 알림울리는 앱 만들기

화찌님 2022. 10. 14. 21:53

<초기구상>


<결과>

 

 

<코드>

//
//  ViewController.swift
//  MyTimer
//
//  Created by leehwajin on 2022/10/14.
//

import UIKit
import AVFoundation


class ViewController: UIViewController {
    
    @IBOutlet weak var alarmNumber: UILabel!
    
    @IBOutlet weak var mainLabel: UILabel!
    
    var minutes, seconds, num, number: Int!
    
    var timer: Timer?
    


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        setup()
    }
    
    func setup() {
        num = 0
        minutes = 0
        seconds = 0
        number = 0
        mainLabel.text = "3초마다 알람을 울릴거예요 \n시간측정을 해볼까요?"
        alarmNumber.text = "알람이 울린 횟수: \(num!)회"
        mainLabel.numberOfLines = 0;


    }
    
    
    //1초마다 실행할 함수
    @objc func loop1seconds() {

        seconds = number
        if(seconds >= 60) {
            minutes = seconds/60
            seconds %= 60
        }
        
        if(seconds%3 == 0 && seconds != 0) {
            AudioServicesPlaySystemSound(SystemSoundID(1002))
            num += 1
            
            alarmNumber.text = "알람이 울린 횟수: \(num!)회"
        }
        

        mainLabel.text = "어머, 시간이 벌써\n \(minutes!)분 \(seconds!)초나\n 지났네 !"
        
        number += 1
        
        
    }
    
    
    
    @IBAction func startButtonTapped(_ sender: UIButton) {
        timer?.invalidate()
        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(loop1seconds), userInfo: nil, repeats: true)
            }
        
        
        
        
    
    
    @IBAction func resetButtonTapped(_ sender: UIButton) {
        timer?.invalidate()
        num = 0
        minutes = 0
        seconds = 0
        number = 0
        mainLabel.text = "3초마다 알람을 울릴거예요 \n시간측정을 해볼까요?"
        alarmNumber.text = "알람이 울린 횟수: \(num!)회"

    }
    

}

<문제점>

레이블.텍스트에 \n을 입력해도 개행이 되지 않아 문자열이 짤리는 현상

 

<해결법>

레이블명.numberOfLines = 0

레이블 개행의 제한을 없애니 개행이 구현됨을 확인하였다.