Magesh
Magesh

Reputation: 277

Setting Background Image for UIBarButtonItem in swift

I am trying set the background image of UIBarButtonItem programatically. But my image is stretched and tiled. Any help on fixing this would be much appreciated. Here is my code

var objectSelected : UIImage!{
    didSet{
        if objectSelected == nil {
            objectSelected = UIImage(named: "line")
        }
       let insets = UIEdgeInsetsMake(0, 0, 10, 0)
        objectSelected.resizableImageWithCapInsets(insets)
      objectSelector.setBackgroundImage(objectSelected, forState: UIControlState.Normal, style: UIBarButtonItemStyle.Plain, barMetrics: UIBarMetrics.Default)

    }
}


@IBOutlet weak var objectSelector: UIBarButtonItem!

Upvotes: 4

Views: 5547

Answers (1)

the_pantless_coder
the_pantless_coder

Reputation: 2297

You could try this.

    var myBtn: UIButton = UIButton()
    myBtn.setImage(UIImage(named: "line"), forState: .Normal)
    myBtn.frame = CGRectMake(0, 0, 70, 70)
    myBtn.addTarget(self, action: "myBtnAction:", forControlEvents: .TouchUpInside)

    self.navigationItem.setLeftBarButtonItem(UIBarButtonItem(customView: myBtn), animated: true)

Upvotes: 7

Related Questions