이 포스팅은 iOS BoostCourse 시리즈 23 편 중 10 번째 글 입니다.

  • Part 1 - 01: Asset, App thinning
  • Part 2 - 02: Foundation, UIKit
  • Part 3 - 03: Auto Layout
  • Part 4 - 04: View 체계
  • Part 5 - 05: 디자인 패턴
  • Part 6 - 06: MVC
  • Part 7 - 07: Apple Development Documents
  • Part 8 - 08: Human Interface Guidelines
  • Part 9 - 09: 화면 전환
  • Part 10 - This Post
  • Part 11 - 11: Delegation
  • Part 12 - 12: Singleton
  • Part 13 - 13: Target-Action
  • Part 14 - 14: Gesture Recognizer
  • Part 15 - 15: TableView
  • Part 16 - 16: Segue
  • Part 17 - 17: Json 다루기
  • Part 18 - 18: PhotoKit
  • Part 19 - 19: 동시성, 비동기, 병렬 프로그래밍
  • Part 20 - 20: OperationQueue
  • Part 21 - 21: SchrollView
  • Part 22 - 22: Naviagtion item, Bar button item
  • Part 23 - 23: CollectionView
▼ 목록 보기

뷰의 상태 변화 감지 메서드

  • 뷰가 화면에 보여지는 상태의 변화
  • 뷰의 레이아웃의 변화
    • 메서드를 호출하여 서브 클래스가 대응을 할 수 있게 함

imageview state Transitions

상태 변화 메서드

  • viewDidLoad()
    • 뷰 계층이 메모리에 로드된 직후 호출되는 메서드
    • 뷰의 추가적인 초기화 작업을 진행
    • 메모리에 처음 로딩될 때, 1회 호출됨
    • 뷰가 사라지지 않는 이상 다시 호출되지 않음(메모리 경고)
  • viewWillAppear
    • 뷰가 뷰 게층에 추가되고 화면이 표시되기 직전에 호출되는 메서드
    • 뷰의 추가적인 초기화 작업을 하기 좋은 시점
    • 다른 뷰로 이동했다가 되돌아오면 재호출되는 메서드
    • 그래서 화면이 나타날 때마다 수행해야 하는 작업을 하기 좋은 시점
  • viewWillDisappear
    • 뷰가 뷰 계층에서 사라지기 직전에 호출되는 메서드
    • 뷰가 생성된 뒤 발생한 변화를 이전으로 되돌리기 좋은 시점
  • viewDidDisappear
    • 뷰가 뷰 계층에서 사라진 후 호출되는 메서드
    • 뷰를 숨기는 것과 관련된 추가적인 작업을 하기 좋은 시점
    • 시간이 오래 걸리는 작업은 하지 않는 것이 좋음. 당연하지 다음 뷰까지 오래걸리니까

뷰의 레이아웃 변화 메서드

뷰가 생성된 후, 바운드 및 위치 등의 레이아웃에 변화가 발생했을 때 호출되는 메서드이다.

  • viewWillLayoutSubViews()
    • 뷰가 서브뷰의 레이아웃을 변경하기 직전에 호출되는 메서드
    • 서브뷰의 레이아웃을 변경하기 전에 수행할 작업을 하기 좋은 시점
  • viewDidLayoutSubviews()
    • 서브뷰의 레이아웃이 변경된 후 호출되는 메서드
    • 서브뷰의 레이아웃을 변경한 후 추가적인 작업을 수행하기 좋은 시점

이외에도 다양한 메서드가 있다.

Reference