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일 ]
해당 번호들은 강의중에 실습할 내용들이다.
해당 출력화면에서 스위치를 키면 전구가 켜진 상태의 사진이 출력이되고, 스위치를 끄면 반대로 전구가 꺼진 이미지가 출력이 된다. 또, 확대버튼을 누르게 되면 사진이 확대가 되도록 구현을 한 사진이다.
등 이렇게 다양한 프로젝트들을 체험할 수 있다.
'iOS 프로그래밍 기초' 카테고리의 다른 글
[iOS 프로그래밍 기초] 11주차 (2) | 2024.11.14 |
---|---|
[iOS 프로그래밍 기초] 10주차 (0) | 2024.11.07 |
[iOS프로그래밍 기초] 7주차 (3) | 2024.10.17 |
[iOS 프로그래밍 기초] 6주차 클래스/ failable/ initialize (4) | 2024.10.10 |
[iOS 프로그래밍] 6주차 일급 객체(일급 시민)와 클로저 기초 (1) | 2024.10.09 |