私はあなたの問題に関連しているはずの別の質問にリプレイしましたhttps://stackoverflow.com/a/14623534/2028575
しかし、あなたが好きなら、私はここに正しい答えを置くことができます:
これは、次のように作成されたUIImageを表示するUIImageViewのサイズを変更するiOS5.xを搭載したデバイスでのみ発生していました。
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(topCapHeight, leftCapWidth, topCapHeight, leftCapWidth);
image = [originalImage resizableImageWithCapInsets:edgeInsets];
これはおそらくiOS6.xで修正されたiOSのバグです
ミラー基準を使用して画像のサイズを変更する場合は、次のように使用できます。
UIImageのカテゴリを作成し、次のインスタンスメソッドを追加します。
- (UIImage*)resizableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight </b>
{
UIImage *image = nil;
float osVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (osVersion < 6.0) {
image = [self stretchableImageWithLeftCapWidth:leftCapWidth topCapHeight:topCapHeight];
} else {
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(topCapHeight, leftCapWidth, topCapHeight, leftCapWidth);
image = [self resizableImageWithCapInsets:edgeInsets];
}
return image;
}
方法:
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight
iOSのドキュメントでは非推奨になっていますが、フレームワークでは廃止されています。つまり、iOS5.xのデバイスでアプリを問題なく実行し、iOS6以降のデバイスでサポートされている新しい方法を使用する場合に使用できます。 。