Ошибка при добавлении кнопки UINavigationbar с изображением

Я пытаюсь добавить кнопку UIBarbutton с изображением на панели UINavigationbar. Однако кнопка перемещается в центр, а не остается слева, и изображение становится огромным. Не могли бы вы, ребята, помочь мне, пожалуйста?

Значок гамбургера

  override func viewDidLoad() {
        super.viewDidLoad()
        //Delegate TableView
        self.tableViewTopSell.delegate = self
        //SetupNavBarCustom
        self.navigationController?.navigationBar.CustomNavigationBar()
        let logo = UIImage(named: "tag.png")
        let imageView = UIImageView(image:logo)
        self.navigationItem.titleView = imageView
        //Hamburg Menu
        self.navigationItem.leftBarButtonItem = nil
        let button = UIButton(type: .custom)
        button.setImage(UIImage (named: "hamburgIcon"), for: .normal)
        button.frame = CGRect(x: 0.0, y: 0.0, width: 35.0, height: 35.0)
        //button.addTarget(target, action: nil, for: .touchUpInside)
        let barButtonItem = UIBarButtonItem(customView: button)
        self.navigationItem.leftBarButtonItems = [barButtonItem]

person Bruno Vavretchek    schedule 21.06.2018    source источник
comment
Вы устанавливаете nil для leftBarButtonItem панели навигации. Затем вы устанавливаете массив элементов на то же самое. Разве это не избыточно?   -  person El Tomato    schedule 21.06.2018


Ответы (1)


Пользовательское изображение кнопки на левой панели:

    let btnBack = UIButton()
    btnBack.setImage(#imageLiteral(resourceName: "back"), for: .normal)
    btnBack.frame = CGRect.init(x: 0, y: 0, width: 30, height: 30)
    btnBack.addTarget(self, action: #selector(addTapped), for: .touchUpInside)
    btnBack.imageView?.contentMode = .scaleAspectFit
    let leftBack = UIBarButtonItem.init(customView: btnBack)

    navigationItem.leftBarButtonItem = leftBack

Также проверьте размер изображения, которое вы пытаетесь установить для кнопки на левой панели. Я использовал размер 35 x 35 для 2-кратного изображения и размер 53 x 53 для 3-кратного изображения.

person Sahdevsinh Chavda    schedule 21.06.2018