12

UIImage方法 :

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight.

ここでは、伸縮可能な領域が 1 ピクセルの高さ/幅に強制されます。

伸縮可能な領域を設定できないので、知りたいのですが、それを行うための UIImage カテゴリはありますか?

ググった後、ライブラリを見つけました。

質問: iPhone 用の 9 パッチ ローダーはありますか?

お知らせ: http://blog.tortuga22.com/2010/05/31/announce-tortuga-22-ninepatch/

http://i.stack.imgur.com/Rc6my.png

これは元の写真で、内側の灰色の四角形を引き伸ばしたいと思います。

前もって感謝します。

4

5 に答える 5

19

これを実現する1つの方法は、以下のアプローチを使用することです。

UIImage * backgroundImg = [UIImage imageNamed:@"bg.png"];

backgroundImg = [backgroundImg resizableImageWithCapInsets:UIEdgeInsetsMake(2,2, 2, 2)];

[imgView setImage: backgroundImg];

UIEdgeInsetsMake(2,2、2、2)は、ストレッチできないようにするピクセルの量です。

于 2012-10-11T14:53:04.803 に答える
4

Tortuga22 ソフトウェアで 9 つのパッチを達成できます

この GitHub からソースを見つけることができますここ

このように使用してください

[btnSubmit setImage: [TUNinePatchCache imageOfSize:[btnSubmit bounds].size 
                                forNinePatchNamed:@"imgNormalBackground"]
                       forControlState:UIControlStateNormal];
于 2012-12-26T14:35:05.443 に答える
2

iOS5以降、resizableImageWithCapInsets:これを実現するために使用できます。

于 2011-11-28T07:02:40.557 に答える
0

私が正しく理解していれば、長方形の長さと高さを大きくしたいと思います。より効率的な解決策があるかもしれませんが、私が提案できるのは、境界を基本単位に分割することです。この画像を次々に繰り返し追加して、目的の長さと高さの長方形の境界線を形成します。次に、内側の長方形を灰色でペイントします。

于 2011-10-27T15:00:55.833 に答える