본문 바로가기
UIKIT

왜 서치바 heightAnchor 의 값을 변경했는데.. 왜 높이 조절 안됨?

by 밤새는 탐험가89 2024. 10. 11.
728x90
SMALL

UISearchBar의 높이를 44에서 100으로 변경했을 때, 높이가 바뀌지 않고 상단에서 내려오는 현상은 UISearchBar의 고정된 기본 높이 때문입니다. UISearchBar는 기본적으로 iOS에서 제공하는 표준 UI 컴포넌트 중 하나로, Apple에서 정해놓은 특정 레이아웃을 따릅니다. 따라서 직접적으로 높이를 변경하는 것이 예상대로 동작하지 않을 수 있습니다.

문제의 원인:

UISearchBar는 시스템에서 고정된 높이를 가지고 있어, 높이를 강제로 변경하려고 하면 종종 문제가 발생합니다. 특히 UISearchBar는 내부적으로 특정 레이아웃과 제약 조건을 가지고 있어, 기본적으로 약 44포인트의 높이를 유지합니다. 높이를 더 크게 하려는 시도가 충돌을 일으켜 오히려 레이아웃이 깨질 수 있습니다.

해결 방법:

  1. UISearchBar의 기본 높이를 유지하고 내부 패딩을 조정하는 방법이 일반적입니다.
  2. UISearchBar의 내부 요소들을 커스터마이징하기 위해 서브클래싱을 사용하거나, 직접 서치 UI를 구성하여 비슷한 디자인을 구현하는 방법이 있습니다.

기본적으로 높이를 변경할 수 없기 때문에 커스터마이징하거나 다른 UI 컴포넌트로 직접 구현하는 것을 추천합니다.

해결책 1: 기본 높이 유지, 패딩 조정

searchBar.searchTextField.leftView = nil // 아이콘 제거
searchBar.searchTextPositionAdjustment = UIOffset(horizontal: 10, vertical: 30) // 텍스트 필드 위치 조정

 

해결책 2: UISearchBar 대체 UI 사용

서치바와 비슷한 커스텀 UIView를 만들고, 그 안에 UITextField와 같은 컴포넌트를 사용하여 유연하게 높이와 레이아웃을 조절하는 방법도 있습니다.

 

 

🔥 이거는 앞으로 커스텀한다면 대체 UI를 사용하는게 낫겠다...

728x90
LIST