2024/10/11 3

MVC 패턴을 위배하지 않고, 서로 다른 View의 오토레이아웃 설정방법

MapView라는 UIView타입의 클래스 안에 userLocationButton을 생성했습니다. 해당 버튼의 위치를 MapSearchView의 TopAnchor에 맞춰서 오토레이아웃을 지정하려고 합니다.  MVC 패턴을 지키려면 userLocationButton을 MapView 내부에서 정의하고, MapView에 MapSearchView와의 관계를 설정할 수 있도록 인터페이스를 열어두는 방식이 더 적합합니다. 예를 들어, MapView 안에서 userLocationButton의 위치를 설정할 수 있는 메서드를 만들어서 컨트롤러가 호출하게 할 수 있어요. 1. MapView에 메서드 추가: userLocationButton을 MapView 안에서 정의하고, MapSearchView의 위치에 맞게 버튼을 ..

iOS/UIKIT 2024.10.11

서치바를 눌렀을 때 서치바 y축 위치를 조절하는 방법

서치바를 눌렀을 때 mapSearchView의 높이를 올려서 키보드가 서치바를 가리지 않도록 하려면, 서치바가 활성화될 때 mapSearchView의 높이를 변경하는 코드를 추가하면 됩니다. 또한, 키보드가 나타날 때 높이를 조정해주는 것이 필요합니다. 아래 방법으로 수정할 수 있습니다:  1. searchBarTextDidBeginEditing에서 높이 조정서치바가 눌렸을 때 mapSearchView의 높이를 조정합니다. 이 코드는 이미 구현된 부분에 추가합니다. func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { // SearchBar가 활성화되면 높이를 400으로 변경 UIView.animate(withDuration: 0.3) ..

iOS/UIKIT 2024.10.11

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

UISearchBar의 높이를 44에서 100으로 변경했을 때, 높이가 바뀌지 않고 상단에서 내려오는 현상은 UISearchBar의 고정된 기본 높이 때문입니다. UISearchBar는 기본적으로 iOS에서 제공하는 표준 UI 컴포넌트 중 하나로, Apple에서 정해놓은 특정 레이아웃을 따릅니다. 따라서 직접적으로 높이를 변경하는 것이 예상대로 동작하지 않을 수 있습니다.문제의 원인:UISearchBar는 시스템에서 고정된 높이를 가지고 있어, 높이를 강제로 변경하려고 하면 종종 문제가 발생합니다. 특히 UISearchBar는 내부적으로 특정 레이아웃과 제약 조건을 가지고 있어, 기본적으로 약 44포인트의 높이를 유지합니다. 높이를 더 크게 하려는 시도가 충돌을 일으켜 오히려 레이아웃이 깨질 수 있습니다..

iOS/UIKIT 2024.10.11