実装が機能しないのは、 stretchableImageWithLeftCapWidth:topCapHeight:メソッドに与える値が原因です。
まず、stretchableImageWithLeftCapWidth:topCapHeight:は iOS 6 で廃止されました。新しい API は resizableImageWithCapInsets:
画像の上下左右に伸縮できない部分があります。あなたがAPIに伝えたのは、「左側から-10を取得し、残りを私が指定したサイズに合わせて伸ばす」ということでした。
右側に再現性のないカスタム形状があるため、高さと幅の両方で、その部分を全体として使用する必要があります。
したがって、トップ キャップの幅は画像の高さ (右側にあるものの形状を保持するため) である必要があり、左キャップの幅は ~20 ピクセル (角の丸い四角形) である必要があり、ボトム キャップは 0 にすることができます。 cap は画像全体の高さです。最後に、右側の cap は右側のカスタム オレンジ色の形状の幅になります (これは ~40 ピクセルと見なされます)。
キャップ値をいじって、より良い結果を得ることができます。
UIImage *image = [UIImage imageNamed:@"Tag"];
UIImage *resizableImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(image.size.height, 20, 0, 40)];
トリックを行う必要があります。また、ファイル拡張子 & @2x を取り除くと、-imageNamed は正常に機能します。