Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

navigation bar button item is bigger than the frame i set

I don't know what's wrong with my code or what did I did that leads to this I spent half an hour trying to figure out what's wrong with my code but I have no idea, I'm calling this func in viewDidLoad()

func setupNavBarBtn(){
        
        let backBtn = UIButton(type: .system)
        backBtn.setImage(#imageLiteral(resourceName: "cellarrow").withRenderingMode(.alwaysOriginal), for: .normal)
        backBtn.contentMode = .scaleAspectFit
        backBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)

        let callBtn = UIButton(type: .system)
        callBtn.setImage(#imageLiteral(resourceName: "Call").withRenderingMode(.alwaysOriginal), for: .normal)
        callBtn.contentMode = .scaleAspectFit
        callBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)

        self.navigationItem.leftBarButtonItems = [UIBarButtonItem(customView: backBtn), UIBarButtonItem(customView: callBtn)]

}

enter image description here

like image 806
Cloud Music Avatar asked Dec 06 '25 11:12

Cloud Music


1 Answers

You should create UIBarButtonItem instead of UIButton:

let backBtn = UIBarButtonItem(image:UIImage(named: "cellarrow.png"), style: .plain, target: nil, action: nil)
let callBtn = UIBarButtonItem(image:UIImage(named: "Call.png"), style: .plain, target: nil, action: nil)
self.navigationItem.leftBarButtonItems = [backBtn,callBtn]

The size of bar button should better be 20x20

like image 86
Ptit Xav Avatar answered Dec 09 '25 01:12

Ptit Xav