iOS 프로그래밍 기초

[iOS 프로그래밍 기초] 9주차

kimbh 2024. 10. 31. 16:48
import UIKit

class ViewController: UIViewController {

    var timer: Timer?

    override func viewDidLoad() {
        super.viewDidLoad()
        // 타이머를 설정하여 주기적으로 배경색을 변경합니다.
        timer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(changeBackgroundColor), userInfo: nil, repeats: true)
    }

    @objc func changeBackgroundColor() {
        // 랜덤한 색상 생성
        let randomColor = UIColor(
            red: CGFloat(arc4random_uniform(256)) / 255.0,
            green: CGFloat(arc4random_uniform(256)) / 255.0,
            blue: CGFloat(arc4random_uniform(256)) / 255.0,
            alpha: 1.0
        )
        // 배경색 변경
        view.backgroundColor = randomColor
    }

    deinit {
        // 타이머를 해제하여 메모리 누수를 방지합니다.
        timer?.invalidate()
    }
}

해당 소스는 실행했을 때 배경색이 랜덤으로 변경할 수 있도록 하는 소스이다.

 

해당 소스 실행 화면이다.

iOS 프로그래밍하면서 제일 중요한 커넥션 인스펙터이다.

위에 사진에서 볼 수 있듯이 아웃렛 끼리 연결이 된 변수명들이 있는것을 알 수 있다.

해당 프로젝트에서 "is Initial View COntroller"를 셀렉을 안하면 그 프로젝트의 화면이 나오지 않는다. 주의해야할 부분이다.

해당 옵션을 선택하게 되면 사진이나 아이콘을 등록했을때 짤리지 않고 크기에 맞게 조절해준다.

 @IBAction func resetBtn(_ sender: UIButton) {
        lblHello.text = "안녕하세요"
        txtName.text = ""
    }

해당 소스는 리셋 버튼을 구현하기 위해서 객체 안에 라벨의 텍스트와 텍스트의 내용을 초기화 해주는 소스라고 이해하면 된다.

 

var x = 0 //일반 변수 선언
    
    @IBOutlet weak var lblNumber: UILabel!
    @IBAction func btnUp(_ sender: UIButton) {
        x = x + 1
        lblNumber.text = String(x)
    }
    
    @IBAction func btnDown(_ sender: UIButton) {
        x = x - 1
        lblNumber.text = String(x)
    }

위에 사진처럼 출력을 하기 위해서 뷰 컨트롤러에서 레이블과 버튼을 두 개 추가 한뒤 변수명을 지정해줘서 " + "를 누르면 값이 1씩 증가하고, " - "를 누르면 값이 1씩 감소하는 형식에 코드를 만들었다.

 

02 Hello World 앱 만들며 Xcode에 완벽 적응하기
03 원하는 이미지 화면에 출력하기 - 이미지 뷰
04 데이트 피커 사용해 날짜 선택하기
05 피커 뷰 사용해 원하는 항목 선택하기
06 얼럿 사용해 경고 표시하기
07 웹 뷰로 간단한 웹 브라우저 만들기
08 맵 뷰로 지도 나타내기
09 페이지 이동하기 - 페이지 컨트롤
10 탭 바 컨트롤러 이용해 여러 개의 뷰 넣기
11 내비게이션 컨트롤러 이용해 화면 전환하기
12 테이블 뷰 컨트롤러 이용해 할 일 목록 만들기
13 음악 재생하고 녹음하기
14 비디오 재생 앱 만들기
15 카메라와 포토 라이브러리에서 미디어 가져오기
16 코어 그래픽스로 화면에 그림 그리기
17 탭과 터치 사용해 스케치 앱 만들기
18 스와이프 제스처 사용하기
19 핀치 제스처 사용해 사진을 확대/축소하기

[출처 - Do it! 스위프트로 아이폰 앱 만들기 입문, 송호정, 이범근 저,이지스퍼블리싱, 2023년 01월 20일 ]

해당 번호들은 강의중에 실습할 내용들이다.

 

3장의 실습 코드를 이용해서 출력한 사진이다.

해당 출력화면에서 스위치를 키면 전구가 켜진 상태의 사진이 출력이되고, 스위치를 끄면 반대로 전구가 꺼진 이미지가 출력이 된다. 또, 확대버튼을 누르게 되면 사진이 확대가 되도록 구현을 한 사진이다.

4장의 소스이다. 일 / 시 / 분 / 초 를 돌려서 아래의 레이블에서는 선택한 시간이 나타나고, 위에 레이블은 현재 시간을 나타내는 프로젝트이다.

등 이렇게 다양한 프로젝트들을 체험할 수 있다.