0

enter image description here

enter image description here

I want to make it like the picture below, but it comes out like the picture above.

Here is My Code.

lazy var button = UIDropDownButton().then {
    $0.setAction().subscribe(onNext: {
        switch $0 {
        case .popularity: break
            // 인기순 정렬 코드
        case .suggestion: break
            // 추천순 정렬 코드
        case .lowestPrice: break
            // 최저가순 정렬 코드
        }
    })
    .disposed(by: disposeBag)
}

lazy var barButtonItem = UIBarButtonItem(customView: button)

override func viewDidLoad() {
    super.viewDidLoad()
    setNavigationBar()
}

override func viewWillAppear(_ animated: Bool) {
    setNavigationBar()
}

private func setNavigationBar() {
    setLargeTitleNavigationBar(title: "제품")
    self.navigationItem.rightBarButtonItem = barButtonItem
    let searchController = UISearchController(searchResultsController: nil)
    self.navigationItem.searchController = searchController
}

setLargeTitleNavigationBar Method is here.

extension UIViewController {

func setLargeTitleNavigationBar(title: String) {
    self.navigationController?.navigationBar.prefersLargeTitles = true
    self.navigationController?.setBackButon()
    self.navigationController?.navigationBar.backgroundColor = nil
    self.navigationController?.navigationBar.shadowImage = nil
    self.navigationController?.navigationBar.setBackgroundImage(nil, for: UIBarMetrics.default)
    self.navigationItem.title = title
}

I don't know how to solve this problem. I like Snapkit, but I can read storyboard.

장서영
  • 37
  • 4

1 Answers1

0

use this

navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
Azhar Tahir
  • 185
  • 1
  • 11