Setting background image for UIBarButtonItem in fast

I am trying to set the background image of UIBarButtonItem programmatically. But my image is stretched and tiled. Any help in fixing this would be greatly 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!
+4
source share
1 answer

You can 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)
+7
source

All Articles