Your first approach is probably the best.
-, UIButton backgroundImageForState: titleForState: ( ..), UIButton customView UIBarButtonItem.
, . resizableImageWithCapInsets: ( stretchableImageWithLeftCapWidth:topCapHeight:, iOS , 5.0), , , , , UIButton, .. , UIBarButtonItem.