자동 특성 추적
iOS 18에서 UIKit는 자동 트레이트 추적을 도입하여 레이아웃 업데이트에 대한 메소드에서 트레이트 변경 알림을 수동으로 등록할 필요를 제거했습니다. 이 기능은 UIView의 layoutSubviews, updatesConstraints, draw와 같은 다양한 뷰 및 뷰 컨트롤러 메소드에서 지원되며, UIViewController의 viewWillLayoutSubviews 및 updateViewConstraints도 포함됩니다. UIKit가 이러한 메소드 중 하나를 호출할 때, 액세스된 트레이트를 기록하고 해당 트레이트가 변경되면 뷰를 자동으로 무효화합니다. 이는 setNeedsLayout, setNeedsUpdateConstraints, setNeedsDisplay 또는 setNeedsUpdateConfiguration와 같은 메소드를 사용하여 수행됩니다. 예를 들어, draw를 재정의하는 UIView 하위 클래스에서 preferredContentSizeCategory 트레이트에 액세스하면 트레이트가 변경될 때 자동으로 setNeedsDisplay를 호출합니다. iOS 18 이전에는 개발자가 트레이트 변경을 수동으로 등록하고 setNeedsDisplay를 호출하여 draw를 다시 호출해야 했습니다. 그러나 자동 트레이트 추적을 사용하면 이 프로세스는 UIKit에 의해 처리됩니다. 이 기능은 트레이트 변경에 응답하는 프로세스를 단순화하고 필요한 코드의 양을 줄입니다. 자동 트레이트 추적은 iOS 18에서 중요한 개선으로, 개발자가 적응형 및 반응형 사용자 인터페이스를 만들기 더 쉽게 해줍니다.