我重播了另一个应该与您的问题有关的问题https://stackoverflow.com/a/14623534/2028575
但如果你愿意,我可以在这里放一个简单的答案:
这只发生在 iOS5.x 调整 UIImageView 大小的设备上,该 UIImageView 显示以这种方式创建的 UIImage:
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 设备上运行应用程序时使用它而不会出现任何问题,并在 iOS 6 或更高版本的设备上使用新支持的方法.