添加自定义按钮到导航控制器没有边框
我向导航控制器添加自定义按钮
UIBarButtonItem * backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@“back.png”] 风格:UIBarButtonItemStylePlain 目标:自 动作:@selector(backAction)]; self.navigationItem.leftBarButtonItem = backButton;
它工作正常,但按钮出现边框。 我该如何解决这个问题?
更新我找到了解决方案
UIButton * button = [[UIButton alloc] initWithFrame:CGRectMake(0,0,25,25)]; [button setImage:[UIImage imageNamed:@“back.png”] forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonFavoriteClicked)forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem * back = [[UIBarButtonItem alloc] initWithCustomView:button]; [按钮释放];
self.navigationItem.leftBarButtonItem = back;
尝试这个。
UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, button_width, button_height)]; [backButton setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal]; [backButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
对于Swift 4
let backButton = UIButton(frame: CGRect(x: 0, y: 0, width: 25, height: 25)) backButton.setImage(UIImage(named: "back.png"), for: .normal) backButton.addTarget(self, action: #selector(backAction), for: .touchUpInside) self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: backButton)
而action(selector)应如下所示:
@objc func backAction () { // do the magic }