본문 바로가기

UINavigationBar에 Custom 뷰를 추가했더니 의도하지 않는 애니메이션이 나오는 문제 본문

iOS Technologies

UINavigationBar에 Custom 뷰를 추가했더니 의도하지 않는 애니메이션이 나오는 문제

SJ_Repsect 2025. 11. 15. 17:49

문제가 되는 코드


guard let navigationBar = navigationController?.navigationBar else { return }

navigationBar.addSubview(navigationProgressView)
navigationProgressView.snp.makeConstraints {
  let margins = navigationBar.layoutMarginsGuide

  $0.leading.equalTo(margins).offset(60)
  $0.trailing.equalTo(margins).offset(-75)
  $0.centerY.equalToSuperview()
  $0.height.equalTo(8)
}

✔ 왜 이런 현상이 생길까?

Navigation Bar는 push 시 자체적으로 transform 애니메이션을 한다
iOS의 네비게이션 바는 push/pop 시 내부의 titleView, left/right items을 자연스럽게 에니메이션이 기본적으로 처리가 되어있음.

그런데 customView를 titleView나 barButtonItem을 통한 안전한 영역이 아니라,
직접 addSubview()로 navigationBar hierarchy에 추가했기 때문에 원치않는 애니메이션을 같이 적용해버림.

가장 안정적이고 애플이 의도한 방식으로 titleView에 직접 넣은 후. customView는 intrinsicContentSize를 계산하여 직접 해결하였다.

'iOS Technologies' 카테고리의 다른 글

iOS App SandBox  (0) 2025.11.08
Workspace에서 Embed 전략  (0) 2025.10.20
xcodebuild로 프로젝트 빌드 시간 측정하는 방법  (0) 2025.10.17
[Widget Extension #1] 최신 데이터 갱신  (3) 2025.08.13
App Extension #1  (4) 2025.06.05
Comments