Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Realm
- Firebase
- view
- SwiftUI
- geofencing
- Session
- stack
- Git
- Swift
- FLUTTER
- mac
- github
- 개발자
- darkmode
- Notification
- error
- rxswift
- UIButton
- IOS
- Xcode
- Apple
- iOS16
- 한글
- 웹뷰
- Archive
- MacOS
- Code
- window
- appstore
- JPA
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) UISearchBar 네비게이션바에 넣기 본문
반응형
UISearchBar 선언부
lazy var searchBar: UISearchBar = {
let searchbar = UISearchBar()
let placeholderText = "검색어를 입력해 주세요."
searchbar.placeholder = placeholderText
if let textField = searchbar.value(forKey: "searchField") as? UITextField {
textField.backgroundColor = .white
if let font = UIFont(name: Resource.Font.NanumSquareRoundR.rawValue, size: 16) {
let placeholderAttributedText = NSAttributedString(string: placeholderText,
attributes: [NSAttributedString.Key.kern: -1.0,
NSAttributedString.Key.font: font])
let attributes = [NSAttributedString.Key.kern: -1.0,
NSAttributedString.Key.font: font] as [NSAttributedString.Key: Any]
textField.attributedPlaceholder = placeholderAttributedText
textField.customFont(fontName: .NanumSquareRoundR, size: 16, letterSpacing: -1)
textField.textColor = Resource.Color.grey05
textField.defaultTextAttributes = attributes
// 검색창 왼쪽 돋보기 없애기
textField.leftViewMode = .never
}
}
// 검색창 커서 색 설정
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).tintColor = Resource.Color.orange06
// 택스트 왼쪽으로 옮기기
searchbar.setPositionAdjustment(UIOffset(horizontal: -50, vertical: 0), for: .search)
UISearchBar.appearance().searchTextPositionAdjustment = UIOffset(horizontal: -10, vertical: 0)
// 검색창 오른쪽 이미지 설정
searchbar.setImage(UIImage(named: "iconCloseB24"), for: .clear, state: .normal)
// 바로 커서 설정
searchbar.becomeFirstResponder()
searchbar.sizeToFit()
// 키보드에서 검색 버튼 눌렀을 때를 수신하기 위한 델리게이트
searchbar.delegate = self
return searchbar
}()
네비게이션 바에 넣기 ( viewDidAppear, viewWillAppear 다 됨)
override func viewDidAppear(_ animated: Bool) {
navigationItem.titleView = searchBar
navigationController?.view.setNeedsLayout() // force update layout
navigationController?.view.layoutIfNeeded() // to fix height if th navigation bar
}
네비바는 44픽셀, 검색바는 56픽셀이라 레이아웃 과정이 필요
'iOS, Swift > Tip, Bug, Swift Error' 카테고리의 다른 글
Swift ) Codable Struct(구조체) 쉽게 만들기 quickType - EEYatHo iOS (0) | 2021.07.16 |
---|---|
Swift ) Google Login에러. id token expired. Code: -15 - EEYatHo iOS (1) | 2021.07.09 |
Swift ) Cell에 그림자 + 둥글게 (shadow + corner radius) (0) | 2021.03.03 |
Swift ) 콜렉션뷰 셀에 오토레이아웃 적용하기 (0) | 2021.03.03 |
Swift ) 로컬에 있는 xml 파일 읽어오기 (0) | 2021.03.03 |
Comments