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
// 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)
// We dont have Property to change UIBarButtonItem frame
// So we can creat UIButton() and give requered frame and add to navigationItem.setLeftBarButtonItems
// Please refere Belove code
// Swift 2.0
let btnBack = UIButton()
btnBack.frame = CGRectMake(0, 0, 100, 64)
btnBack.addTarget(self, action: "backAction", forControlEvents: UIControlEvents.TouchUpInside)
let leftBarBackBtn: UIBarButtonItem = UIBarButtonItem(customView: btnBack)
self.navigationItem.setLeftBarButtonItems([ leftBarBackBtn ], animated: false)
// Please submit your answer with Explanation comments to improve your Quality or Answer and question
the top answer for swift 3:
let homeButton = UIButton(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
homeButton.setBackgroundImage(#imageLiteral(resourceName: "home-1"), for: .normal)
homeButton.addTarget(self, action: #selector(homePressed), for: .touchUpInside)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: homeButton)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With