[트러블 슈팅] UISearchBar backgroundColor 미적용

2026. 2. 22. 19:04·내일배움캠프/환율 계산기 - 개인 프로젝트

⚠️ 문제: UISearchBar.backgroundColor 미적용

 

searchBar.backgroundColor = .red

 

위 코드를 적용했으나 의도한 바와 달리 흐리게 표현되고 있습니다.

 

❗️ 원인: UISearchBarBackground 이미지

 

UI 디버깅을 해보니 .red로 설정된 background 위에 하나의 뷰가 더 올라가 있습니다.

 

UISearchBarBackground 라는 이름의 이미지뷰로 추정됩니다.

 

이때문에 searchBar의 배경 색상 자체는 빨간색으로 잘 변경되었지만 지난번 UISegmentControl 배경 색상을 바꾸면서 겪었던 때와 마찬가지로 이미지뷰가 겹쳐져 의도한 색상으로 보이지 않았던 것 같습니다.

 

🤔 해결과정: backgroundImage를 없애보기

위에서 언급했듯 UISegmentControl.backgroundColor와 비슷한 문제로 보여 당시의 해결 방법을 적용해보았습니다.

searchBar.backgroundImage = nil

 

backgroundImage를 nil로 할당해줘봤는데, 결과는 변하지 않았습니다. (여전히 흐릿한 빨간색)

 

UISearchBar는 3개의 이미지를 가지고 있습니다. 문제 파악을 위해 해당 속성들을 출력해보았습니다.

print(searchBar.backgroundImage)
print(searchBar.scopeBarBackgroundImage)
print(searchBar.largeContentImage)

// 모두 nil 출력

 

세 가지 속성 모두 nil을 출력합니다.

원래부터 존재하지 않았으니 backgroundImage = nil 을 적용하여도 결과가 동일했던 것입니다.

 

그렇다면 커스텀 searchBar를 만들어 layoutSubviews를 건드려봅시다.

class SearchBar: UISearchBar {
	override init(frame: CGRect) {
    	super.init(frame: frame)
        backgroundColor = .red
    }
    
    override func layoutSubviews() {
    	super.layoutSubviews(()
        let imagesView = subviews.compactMap { $0 as? UIImageView }.prefix(1)
        imageView.first!.isHidden = true
    }
}

 

UISegmentControl은 segment 개수만큼 이미지뷰를 가지고 있었습니다.

그래서 layoutSubviews()에서 해당 이미지뷰를 숨기면 설정했던 배경 색상을 그대로 볼 수 있었죠.

 

그러나 UISearchBar에서는 위 방법이 먹히지 않았습니다.

 

우리는 위에서 이미 UISearchBar.backgroundImage 가 nil인 것을 확인했었습니다.

애초에 이미지가 존재하지 않으니 동일한 방법을 사용해도 작동하지 않았던 거겠지요.

 

✅ 해결: searchBarStyle = .minimal로 변경

UISearchBar는 searchBarStyle이라는 속성을 가지고 있습니다.

 

The style UISearchBar.Style.minimal provides no default background color or image but will display one if customized as such.
 

searchBarStyle | Apple Developer Documentation

A search bar style that specifies the search bar’s appearance.

developer.apple.com

 

공식 문서에서 말하길, .default가 아닌 .minimal로 스타일을 설정하면 기본 backgroundColor나 image를 지니고 있지 않다고 합니다.

searchBar.searchBarStyle = .minimal

 

해당 스타일을 적용하자 의도한대로 배경 색상이 적용되었습니다.

'내일배움캠프 > 환율 계산기 - 개인 프로젝트' 카테고리의 다른 글

[의사결정기록] MVC 패턴에서의 amountTextField 동작 정의  (0) 2026.03.09
[트러블 슈팅] CoreData에 저장한 데이터가 없는데 데이터가 존재하는 문제  (0) 2026.03.02
[트러블 슈팅] 셀 선택 시 여러 개의 데이터가 출력되는 현상  (0) 2026.03.02
[트러블 슈팅] UICollectionView Cell Autolayout 충돌  (0) 2026.03.02
[프로젝트 소개] 환율 계산기 앱 만들기  (0) 2026.02.22
'내일배움캠프/환율 계산기 - 개인 프로젝트' 카테고리의 다른 글
  • [트러블 슈팅] CoreData에 저장한 데이터가 없는데 데이터가 존재하는 문제
  • [트러블 슈팅] 셀 선택 시 여러 개의 데이터가 출력되는 현상
  • [트러블 슈팅] UICollectionView Cell Autolayout 충돌
  • [프로젝트 소개] 환율 계산기 앱 만들기
devbambu
devbambu
devbambu 님의 블로그 입니다.
  • devbambu
    devbambu 님의 블로그
    devbambu
  • 전체
    오늘
    어제
    • devBambu (21)
      • WWDC (1)
      • Swift Github (1)
        • Algorithms (1)
      • 내일배움캠프 (19)
        • Kiosk - Gacha! (4)
        • 환율 계산기 - 개인 프로젝트 (6)
        • Kickboard - Animality (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
devbambu
[트러블 슈팅] UISearchBar backgroundColor 미적용
상단으로

티스토리툴바