首页 文章

添加自定义按钮到导航控制器没有边框

提问于
浏览
9

我向导航控制器添加自定义按钮

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back.png"]
                                                                   style:UIBarButtonItemStylePlain
                                                                  target:self
                                                                  action:@selector(backAction)];
    self.navigationItem.leftBarButtonItem = backButton;

它工作正常,但按钮出现边框 . 我该如何解决这个问题?

UPDATE 我找到了解决方案

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];
    [button release];
self.navigationItem.leftBarButtonItem = back;

2 回答

  • 1

    试试这个 .

    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];
    
  • 13

    对于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)
    

    动作(选择器)应如下所示:

    @objc func backAction () {
            // do the magic 
    }
    

相关问题