Search code examples
iosxcodeswift3

Change size of UIBarButtonItem (image) in Swift 3


I am trying to change the size of some icons in my navBar, but I am a little confused as to how to do this? My code so far is:

func setUpNavBarButtons() {
    let moreButton = UIBarButtonItem (image: UIImage(named:"ic_more_vert_3")?.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(handleMore))
    navigationItem.rightBarButtonItems = [moreButton]
    let refreshButton = UIBarButtonItem (image: UIImage(named:"ic_refresh")?.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(refreshDataButton))
    navigationItem.leftBarButtonItems = [refreshButton]
}

any help?


Solution

  • In the end I did it like this and it worked:

    let moreButton = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
    moreButton.setBackgroundImage(UIImage(named: "ic_more_vert_3"), for: .normal)
    moreButton.addTarget(self, action: #selector(TableViewController.handleMore), for: .touchUpInside)
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: moreButton)
    

    Answer from: Change width of a UIBarButtonItem in a UINavigationBar in swift