我正在为IOS 5.0工作,作为minTarget
我有一个UIImageView,我想为其分配一个可调整大小的图像,这样图像就不会从角落伸展。
我尝试将UIImageView的内容模式设置为UIViewContentModeScaleToFill。但图像显示为平铺。
这是代码
UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] resizableImageWithCapInsets:UIEdgeInsetsMake(2, 2, 2, 2)];
imgView.contentMode = UIViewContentModeScaleToFill;
imgView.image = bgImage;
我正在寻找与android中的9patch图像相同的效果
这是我正在尝试的图像
我刚才再看一下resizeableImageWithCapInsets的文档。它说它把没有盖帽的区域拼凑起来。我认为导致平铺图案的原因。是否有任何解决方法,以便我可以有9Patch样式图像??
根据Apple Docs的说法 以下是IOS 5.0以下我的工作 [[UIImage imageNamed:@“textViewBg”] stretchableImageWithLeftCapWidth:6 topCapHeight:6]; (如Dipen Panchasara所述)
IOS6.0及更高版本后续工作为我的要求 - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
IOS 5.0及更高版本(我需要)
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
上面的函数在我的情况下不起作用,因为它将图像平铺在帽子下面。
所以对于IOS 5.0到IOS 6.0,我找不到任何能解决我要求的东西。
现在我转向使用Dipen Panchasara解决方案,我希望它保持稳定
答案 0 :(得分:1)
// Use following code to make stretchableBackground
UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] stretchableImageWithLeftCapWidth:13 topCapHeight:13];
[imgView setImage:bgImage];
答案 1 :(得分:0)
ScaleToFill将拉伸图像以填充整个图像视图。如果您不想拉伸图像并保持其纵横比,请使用UIViewContentModeScaleAspectFit或UIViewContentModeScaleAspectFill。
您可以找到有关这些常量的更多信息here。