在RightBarButton上设置图像和标题

时间:2018-03-16 05:51:51

标签: ios swift uibarbuttonitem

我想在rightBarButton上设置图片和标题。标题将首先出现。我搜索了很多,但所有文章都与leftBarButton有关。那么有人可以告诉我,如何设置它们?

func methodForSettingButtonClicked() {
    let buttonSetting = UIButton(type: .custom)
    buttonSetting.frame = CGRect(x: 0, y: 5, width: 25, height: 25)
    let imageReg = UIImage(named: "setting")
    buttonSetting.setTitle("Settings", for: .normal)
    buttonSetting.setImage(imageReg, for: .normal)
    let leftBarButton = UIBarButtonItem()
    leftBarButton.customView = buttonSetting
    self.navigationItem.rightBarButtonItem = leftBarButton;
}

3 个答案:

答案 0 :(得分:0)

尝试使用自定义VIew的barbutton项目,如下所示: -

let button =  UIButton(type: .Custom)
    button.setImage(UIImage(named: "icon_right"), forState: .Normal)
        button.addTarget(self, action: "buttonAction", forControlEvents: .TouchUpInside)
    button.frame = CGRectMake(0, 0, 53, 31)
    button.imageEdgeInsets = UIEdgeInsetsMake(-1, 32, 1, -32)//move image to the right
    let label = UILabel(frame: CGRectMake(3, 5, 50, 20))
    label.font = UIFont(name: "Arial-BoldMT", size: 16)
    label.text = "title"
    label.textAlignment = .Center
    label.textColor = UIColor.whiteColor()
    label.backgroundColor =   UIColor.clearColor()
    button.addSubview(label)
    let barButton = UIBarButtonItem(customView: button)
    self.navigationItem.rightBarButtonItem = barButton

imageEdgeInsets 扮演着重要角色。

答案 1 :(得分:0)

尝试如下并根据需要设置标题

  let button = UIButton(type: .system)
    button.setImage(UIImage(named: "icon_image_name"), for: .normal)
    button.setTitle("Categories", for: .normal)
    button.addTarget(self, action: #selector(clickOnButtonActionMethod), for: .touchUpInside)
    button.sizeToFit()
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)

如果需要,可以根据需要更改按钮属性。

答案 2 :(得分:0)

你可以这样做,

    let button = UIButton(type: .custom)
    button.setTitle("Settings", for: .normal)
    button.setImage(#imageLiteral(resourceName: "settings"), for: .normal)
    button.semanticContentAttribute = .forceRightToLeft
    button.setTitleColor(UIColor.white, for: .normal)
    button.frame = CGRect(x: 0, y: 0, width: 100, height: 40)
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)

它对我有用,希望它可以帮到你。