这里对- (UIImage )resizableImageWithCapInsets:(UIEdgeInsets)capInsets方法及- (UIImage )resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode方法对于图片的拉伸与压缩效果做了个研究。话不多说,直接上代码:
注:
test@2x.png图像大小 172x172 对于一倍图大小就是86x86
图中一个小方框的大小为86/3 = 28.7
一、我们先讲resizableImageWithCapInsets方法的拉伸
1.testImage大小打印结果为:<UIImage: 0x61000008ce40>, {86, 86}
UIImage *testImage = [UIImage imageNamed:@"test"];
2.原图展示
[_normalImage setImage:testImage];
4.设置上、左、下、右四个端盖
UIEdgeInsets edges = UIEdgeInsetsMake(20, 20, 20, 20);
5.image的大小打印得<_UIResizableImage: 0x600000129100>, {86, 86},它会依据承载它的imageview的大小而改变
UIImage *image = [[UIImage imageNamed:@"test"] resizableImageWithCapInsets:edges];
6.将新图片付给imageView
[_strechImage setImage:image];
下面为得到的效果: