iOS 拉伸图片

在开发过程中总会遇到背景图片和控件大小一致的困扰,通常就是两种方法:
1、找美工切大小合适的图片
2、通过使用代码处理或可视化设置图片拉伸

如何使用Slicing

Slicing功能要在.xcassets结尾的图片资源管理器中才可以使用

1、通过以下Show Slicing按钮和右边栏Slicing属性打开效果相同,点击后可以看到有三种图片拉伸方式:水平、垂直、水平垂直方向;

Slicing 中有个Center属性用来指定图片的拉伸方式(Stretches、Tile)和可拉伸矩形范围

第一步把冰箱门打开.png

2、根据需要选择图片拉伸方式,这里选择十字图标或右侧选择 Horizontal And Vertical来演示效果,如下图蓝色区域为可拉伸区域 CGSizeMake(5, 5),绿色区域为不可拉伸区域 UIEdgeInsetsMake(8, 8, 8, 8),可以通过过拖拉虚线来改变它们的作用区域或右侧属性来修改

第二步大象装进冰箱.png

水平拉伸方式更直观:
拿一个水桶.png

3、拉伸前图片大小52*52,通过设置后的效果
第三步把大象拉出来溜溜.png

在可视化编程中设置UIImageView的Stretching为(0.5, 0.5, 0, 0)来处理拉伸

stretching.png

通过使用UIImage方法处理图片拉伸

1
2
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets;
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode;

参数
capInsets:用来设置图片的顶、左、底、右的端盖高度
resizingMode:指定图片的拉伸方式

UIImageResizingModeStretch:延伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片图片
UIImageResizingModeTile:平铺模式,通过复制显示UIEdgeInsets指定的矩形区域来填充图片

总结

Stretching属性设置拉伸只对UIImageView有效,按钮图片拉伸需要使用其他两种方式处理;
UIImage中方法处理图片拉伸,适用于代码设置;
Slicing功能最为方便有效,推荐使用;