Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 8 그리드 시스템
- ios
- 뉴모피즘
- viewDidAppear
- 뉴북
- 픽셀
- 디자인 트렌드
- iOS앱개발올인원패키지Online.
- 패스트캠퍼스
- 패스트캠퍼스후기
- 스큐어모피즘
- 플랫디자인
- commit
- git
- Git Tutorial
- coordinator pattern
- 패캠챌린지
- git workflow
- viewDidLoad
- 직장인인강
- commit messages
- commit message
- Xcodebuild
- 입력 개수 제한
- 머티리얼 디자인
- 아이폰
- 직장인자기계발
- 포인트
- 코드리팩토링
- SWIFT
Archives
- Today
- Total
왕논의 연구실
iOS 화면 구성 시 자주 사용하는 Override 함수 정리 (UIView / UIViewController) 본문
iOS/Swift
iOS 화면 구성 시 자주 사용하는 Override 함수 정리 (UIView / UIViewController)
ywangnon 2025. 4. 19. 21:43UIView 기준
함수 | 호출 시점 | 주로 하는 일 | 비고 |
---|---|---|---|
init(frame:) |
코드로 View 생성 시 | View 초기 설정 | 초기화 |
init?(coder:) |
Storyboard, Xib 로드 시 | View 초기 설정 | 초기화 |
layoutSubviews() |
Frame 변경 시 | 서브뷰 레이아웃 재배치 | AutoLayout 안 쓰거나 커스텀 레이아웃 할 때 주로 사용 |
draw(_:) |
View 다시 그릴 때 | 직접 그래픽 그리기 | CoreGraphics, 무거움 주의 |
updateConstraints() |
constraints 업데이트 필요 시 | 제약조건 동적 업데이트 | setNeedsUpdateConstraints() 호출 후 실행됨 |
UIViewController 기준
함수 | 호출 시점 | 주로 하는 일 | 비고 |
---|---|---|---|
loadView() |
메모리에 View 로드 시 | View 직접 생성 (특수 케이스) | 보통 override 안함 |
viewDidLoad() |
View가 메모리에 올라온 직후 | 초기 설정, 데이터 로드 | 가장 많이 쓰는 함수 |
viewWillAppear(_:) |
View 나타나기 직전 | UI 업데이트, 애니메이션 준비 | 여러 번 호출됨 |
viewDidAppear(_:) |
View 나타난 직후 | 애니메이션 실행, Analytics | 여러 번 호출됨 |
viewWillLayoutSubviews() |
AutoLayout 계산 직전 | 레이아웃 조정, 사이즈 변경 대응 | frame이 바뀔 때마다 호출 |
viewDidLayoutSubviews() |
AutoLayout 계산 직후 | 서브뷰 레이아웃 보정 | SafeArea 등 계산 후 처리 |
viewWillDisappear(_:) |
사라지기 직전 | 리소스 정리, 타이머 중지 | 여러 번 호출됨 |
viewDidDisappear(_:) |
사라진 직후 | 상태 저장, 리스너 해제 | 여러 번 호출됨 |
핵심 흐름 요약 (UIViewController 생명주기 + 레이아웃 흐름)
loadView()
-> viewDidLoad()
-> viewWillAppear()
-> viewWillLayoutSubviews()
-> viewDidLayoutSubviews()
-> viewDidAppear()
View 변경 발생 시 | 처리 순서 |
---|---|
bounds / frame 변경 | viewWillLayoutSubviews() → viewDidLayoutSubviews() |
constraints 변경 | updateConstraints() → layoutSubviews() |
개발자가 기억하면 좋은 원칙
- viewDidLoad → 초기 설정
- viewWillLayoutSubviews → 크기 변동 대응
- layoutSubviews → UIView 레이아웃 직접 조정
- draw → 정말 마지막 수단 (CoreGraphics)
- viewDidLayoutSubviews → AutoLayout 반영 후 세팅
- viewWillAppear / viewDidAppear → 화면 갱신 or 애니메이션
- viewWillDisappear / viewDidDisappear → 리소스 해제 or 상태 저장
'iOS > Swift' 카테고리의 다른 글
CoreBluetooth - 입문 (0) | 2025.04.17 |
---|---|
Swift XCTest 정리 - 입문 (0) | 2025.04.15 |
CAEmitterCell (0) | 2025.04.12 |
CAEmitterLayer (0) | 2025.04.12 |
OSLog 요소 (0) | 2025.04.11 |