-
웹개발자의 iOS 개발기(8) - [UIKit] UIKit 입문iOS 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 선택
UIKit 프로젝트 생성1 UIKit 프로젝트 생성2 Main으로 전체 검색해 보면 Storyboard Name의 속성값이 지정되어 있다.
앱이 실행될 때 처음으로 찾아가는 게 해당 속성값에 지정된 스토리보드이다.
Storyboard 실행 그럼 Main에서 EntryPoint를 찾아서 실행된다.
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에서 요소 선택 후 사이드바에서 직접 제거도 해야 한다.
사이드바에서 직접 제거 'iOS' 카테고리의 다른 글
웹개발자의 iOS 개발기(10) - [UIKit] 테이블뷰, TableView (0) 2025.01.26 웹개발자의 iOS 개발기(9) - [UIKit] AutoLayout (0) 2025.01.26 웹개발자의 iOS 개발기(7) - [SwiftUI] 모달, 네비게이션, 탭뷰 (5) 2025.01.26 웹개발자의 iOS 개발기(6) - [SwiftUI] 리스트 (0) 2025.01.25 웹개발자의 iOS 개발기(5) - 예외 처리, 프로토콜, 제네릭 (0) 2025.01.24