0

私はminTargetとしてIOS 5.0に取り組んでいます

サイズ変更可能な画像を割り当てたい UIImageView があるので、画像が隅から伸びないようにします。

UIImageView のコンテンツ モードを UIViewContentModeScaleToFill に設定しようとしました。ただし、画像はタイル状に表示されます。

ここにコードがあります

UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] resizableImageWithCapInsets:UIEdgeInsetsMake(2, 2, 2, 2)];

imgView.contentMode = UIViewContentModeScaleToFill;
imgView.image = bgImage;

Androidの9パッチ画像と同じ効果を探しています

これが私が試している画像です ImgViewBg

resizeableImageWithCapInsets のドキュメントをもう一度見てみました。それは、キャップの下にない領域をタイル化すると言います。タイル模様の原因は何だと思います。9Patch スタイルのイメージを使用できるようにするための回避策はありますか??

編集

Apple Docs によると、
IOS 5.0 までは次のように動作します。
[[UIImage imageNamed:@"textViewBg"] stretchableImageWithLeftCapWidth:6 topCapHeight:6]; (ディペン・パンチャサラが述べたように)

IOS6.0 以降では、私の要件で動作します。
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

IOS 5.0 以降 (必要)
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
上記の関数は、キャップの下にない画像をタイル表示するため、私の場合は機能しません。

そのため、IOS 5.0 から IOS 6.0 の場合、要件を解決するものを見つけることができませんでした。

今のところ、Dipen Panchasara ソリューションの使用に移行しています。安定していることを願っています。

4

2 に答える 2

1
// Use following code to make stretchableBackground
UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] stretchableImageWithLeftCapWidth:13 topCapHeight:13];
[imgView setImage:bgImage];
于 2013-03-22T08:31:49.910 に答える
0

ScaleToFillは、画像を引き伸ばして画像ビュー全体を塗りつぶします。画像を引き伸ばしてアスペクト比を維持したくない場合は、UIViewContentModeScaleAspectFitまたはUIViewContentModeScaleAspectFillを使用してください。

これらの定数の詳細については、こちらをご覧ください。

于 2013-03-22T08:06:33.537 に答える