【iOS】UISearchBar의 배경색 변경

검색바에서 자주 사용하는 UISearchBar를 직접 지정한 배경색으로 맞춤설정하는 방법입니다.

간단하게, 이하와 같이 기술하면 왠지 반영되지 않습니다.
searchBar.backgroundColor = UIColor.yellow



또한 barTintColor를 변경하면 배경 색상이 변경되지만 border는 남아 있습니다.
searchBar.barTintColor = UIColor.yellow



거기서 여러가지 조사해 보았더니, UISearchBar에는 backgroundImage가 설정되어 있다는 것을 알았습니다.
UISearchBarBackground라는 자체 클래스처럼 보입니다.

따라서 이 backgroundImage를 삭제해 보면 무사히 backgroundColor를 커스터마이즈 할 수 있었습니다.
let barImageView = searchBar.value(forKey: "_background") as! UIImageView
barImageView.removeFromSuperview()

searchBar.backgroundColor = UIColor.yellow



똑같이 "value(forKey: )"를 이용하면 TextField의 취득도 할 수 있습니다.
let textField = searchBar.value(forKey: "_searchField") as! UITextField

textField.backgroundColor = UIColor.blue



textField를 얻으면 나중에 textField 설정을 변경하고 사용자 정의 할 수 있습니다.

그건 그렇고,이 키는 디버깅으로 내용을 알 수 있습니다.

좋은 웹페이지 즐겨찾기