Search code examples
swiftios7

Change width of a UIBarButtonItem in a UINavigationBar in swift


i need to set frame for my navigation bar button in swift 2.0

i tried this code

self.navigationController!.navigationBar.drawRect(CGRectMake(0, 0, 30, 30)) 

but it won't work

thanks in advance


Solution

  • // Swift 3
    let backButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
    backButton.setBackgroundImage(UIImage(named: "img"), for: .normal)
    backButton.addTarget(self, action: "action:", for: .touchUpInside)
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: backButton)
    
    // Swift 2
    let backButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
    backButton.setBackgroundImage(UIImage(named: "img"), forState: .Normal)
    backButton.addTarget(self, action: "action:", forControlEvents: .TouchUpInside)
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: backButton)