专栏名称: Cocoa开发者社区
CocoaChina苹果开发中文社区官方微信,提供教程资源、app推广营销、招聘、外包及培训信息、各类沙龙交流活动以及更多开发者服务。
目录
相关文章推荐
苹果黑科技  ·  iOS ... ·  2 天前  
苹果黑科技  ·  iOS ... ·  2 天前  
51好读  ›  专栏  ›  Cocoa开发者社区

在 iOS 开发中如何优雅地进行图片缩放?

Cocoa开发者社区  · 公众号  · ios  · 2016-10-27 08:15

正文

请到「今天看啥」查看全文



  • IUIImageResizingModeStretch:拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域是我们要保护的区域,也就是不被拉伸的区域

  • UIImageResizingModeTile:平铺模式,通过重复显示UIEdgeInsets指定的矩形区域是要保护的区域,也就是不被重复显示的区域


拉伸模式


来做四个测试,假如我们的原始图像尺寸为60*128当我们设置capInsets为以下四种值的时候有什么样子的效果:


  1. capInsets参数为UIEdgeInsetsMake(0, 0, 0, 0)

  2. capInsets参数为UIEdgeInsetsMake(42, 0, 0, 0)

  3. capInsets参数为UIEdgeInsetsMake(0, 20, 0, 0)

  4. capInsets参数为UIEdgeInsetsMake(42, 20, 42, 20)


在一个180*384的窗口进行测试图像,对于实践的结果,可以在这个 地址中 看到。


四种测试结果是:


  1. 原始图像拉伸,比例放大

  2. 我们对图片上面的区域进行了保护,其他区域进行了拉伸,保护区域在Y轴保持了原比例,但是X轴方向进行了拉伸

  3. 我们对图片的左侧区域进行了保护,其他区域进行了拉伸,保护区域在X轴保持了原比例,但是在Y轴方向进行了拉伸

  4. 我们对除了中心区域的位置进行了保护,中心区域进行了拉伸,四个角进行了双层保护,其余被保护区域在X、Y轴的拉伸与第2、3种情况下相同,效果图如下:



平铺模式


与上面的场景相同,只不过不再拉伸,改为平铺的方式,来尝试以下四种情况:


  1. capInsets参数为UIEdgeInsetsMake(0, 0, 0, 0)

  2. capInsets参数为UIEdgeInsetsMake(42, 0, 0, 0)

  3. capInsets参数为UIEdgeInsetsMake(0, 20, 0, 0)

  4. capInsets参数为UIEdgeInsetsMake(42, 20, 42, 20)


在一个180*384的窗口进行测试图像,对于实践的结果,可以在这个 地址中 看到。







请到「今天看啥」查看全文


推荐文章
小鹿情感先生  ·  怎样让你喜欢的女生忍不住联系你
7 年前