iOS
웹개발자의 iOS 개발기(8) - [UIKit] UIKit 입문
whh__
2025. 1. 26. 16:19
UIKit에 대하여 공부해 보았습니다.
01. Storyboard로 UIKit 입문하기
SwiftUI vs UIKit
- 화면을 그리는 방법
- SwiftUI는 MacOS와 iOS 모두 호환
- SwiftUI로 만들지 못하는 것들이 있음 → UIKit도 혼용해야 함
- UIKit은 과거부터 사용되면서 유지보수를 위해서라도 UIKit을 알아야 함.
- Apple에서도 SwiftUI를 밀고 있기 때문에 언젠간 SwiftUI로 완전 대체 될 것이다.
UIKit이 화면을 그리는 방법
- Storyboard
- GUI를 사용한 스토리보드
- Code
- SwiftUI처럼 코드만을 사용하는 방법
- 각각의 장단점 존재
SwiftUI 프로젝트 생성시 Multiplatform - app이었다면,
UIKit 프로젝트 생성 시 iOS - App 선택
Main으로 전체 검색해 보면 Storyboard Name의 속성값이 지정되어 있다.
앱이 실행될 때 처음으로 찾아가는 게 해당 속성값에 지정된 스토리보드이다.
그럼 Main에서 EntryPoint를 찾아서 실행된다.
02. View와 ViewController
- View(.storyboard)에 요소를 드래그 앤 드롭하면 그대로 그려진다.
- 그런데 요소를 그리기만 해서는 안된다. 요소의 기능 동작을 하기 위해선 ViewController로 View를 조종해야 한다.
UIViewController를 상속받아야만 ViewController의 역할을 한다.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
개발해보기
- 옵션키 누르고 파일 클릭하면 XCode에서 창이 나눠서 켜진다.
- View에서 요소 선택 후 우클릭으로 드래그해서 ViewController에 넣으면 아래와 같이 창이 뜬다.
- 이를 이용해서 요소마다 Outlet, Action을 정의한다.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var myButton: UIButton!
@IBOutlet weak var myLabel: UILabel!
@IBAction func didMyButtonTapped(_ sender: Any) {
print("Hello UIKit!")
myLabel.text = "Hello UIKit"
}
// View를 다 그린 이후에 동작
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green
// Do any additional setup after loading the view.
}
}
- 이때 생성된 코드가 불필요해져서 삭제 시 ViewController의 코드만 지우면 에러가 발생한다.
- View에서 요소 선택 후 사이드바에서 직접 제거도 해야 한다.