iOS UIImage 图片局部拉伸的一些学习要点
之前 做纯色局部拉伸 通过 top bottom left right 相交的阴影拉伸 屡试不爽
实施方法:
imageView.image = [[UIImage imageNamed: @"icon_helper_palace_day"] resizableImageWithCapInsets:palaceInset]];
我用这个方法 去拉伸一个 有图案的图的 相对纯色的那一部分时候 会发现 图片被拉伸的同时 会有被图片局部本身填充的现象 好像是连续的同一个1个半的图
这个时候 说明我没考虑到拉伸图片UIImage的一个属性
:
typedef NS_ENUM(NSInteger, UIImageResizingMode) {
UIImageResizingModeTile, // 进行区域复制模式拉伸 "填充"
UIImageResizingModeStretch,//进行渐变复制模式拉伸 "拉伸"
};
默认的属性 是前者 明显就是像素点 填充 就适合纯色填充拉伸的那种 那么 其他情况的拉伸 就应该用你 stretch的属性
实施如下:
imageView.image = [[UIImage imageNamed:@"icon_helper_palace_day"] resizableImageWithCapInsets:palaceInset resizingMode:UIImageResizingModeStretch];
真的就是拉伸如下图(背景宫殿 拉伸的是红色城墙部分)

这是 对本地图片的处理 很不错 , 但是同样一张图 从网络获取的 用同样这个方法 效果图 如下 :

宫殿在最底下呢 拉伸后看不见了只是 这是为啥 我研究半天甚至 自己写了一个demo打算求助网友, 我突然发现 网上传下来的图片 是 xx.png 而本地图片 则是 @2x @3x 这个 是关键区别!!!!说明 代码很诚实的表达了这种尴尬的情况, 对于网络下载的xx.png app一定默认为原图 也就是 "@1x" 一倍图 ,那我 还是想让他按本地图片一样效果 必须处理 按比例裁剪 即可:
UIImage *iconImage = [HFImageUtil scaleToSize:image newSize:[UIImage imageNamed:@"icon_helper_palace_day"].size];//按当前应用获取到的 2x 或者是 3x的本地图的应用级别的大小 裁剪
这样 再去拉伸 妥妥地正常了
iOS UIImage 图片局部拉伸的一些学习要点的更多相关文章
- ios UIImage图片拉伸 resizableImageWithCapInsets:
常见的按钮添加和背景设置如下: UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(80, 130, 160, 44)];[bu ...
- [IOS] 详解图片局部拉伸 + 实现图片局部收缩
(图为微信首页右上角『+』效果) 当初还在开发WP7的时候,从IOS同事那边了解到类似微信以上功能的实现. Item条数不同,总高度也不同,这就需要将背景图片进行局部拉伸到响应的高度,并且保持上方的三 ...
- IOS中图片拉伸技巧与方法总结(转载)
以下内容转载自:http://my.oschina.net/u/2340880/blog/403996 IOS中图片拉伸技巧与方法总结 一.了解几个图像拉伸的函数和方法 1.直接拉伸法 简单暴力,却是 ...
- UIImage图片拉伸方法
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能.极强的用户体验.华丽简洁的外观.华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设 ...
- iOS 图片的拉伸,取固定区域显示
1.图片拉伸合适的尺寸 以及清晰度 UIButton * but =[[UIButton alloc]initWithFrame:CGRectMake(, , , )]; //拉伸 /*UIImage ...
- iOS开发小技巧--巧用ImageView中的mode(解决图片被拉伸的情况)
一.自己遇到的问题:在布局ImageView的时候,通过约束将ImageView布局好,但是里面的图片被拉伸的很难看.这时候就用到了Mode属性,如图: 代码实现方式: 二.让图片按照比例拉伸,并不是 ...
- iOS:图片拉伸不变形技巧
方法: 假设图片为60*24 CGFloat top = image.height*0.5-1; // 顶端盖高度 CGFloat bottom = top ; // 底端盖高度 CGFloat le ...
- iOS 调整图片尺寸,告诉你的UI,别问我尺寸!我要最大的
如果UI问你“这个图片你要多大尺寸的?”,你该怎么回答呢? 为了不让图片因拉伸或压缩而变形或模糊,请精确告诉UI图片的比例,至于图片的分辨率,不必要要求太严,但是最低要求是要让最大的屏幕不会出现前面描 ...
- iOS多图片下载
iOS多图片下载.在cell里面下载图片.做了缓存优化. (app.icon是图片地址) // 先从内存缓存中取出图片 UIImage *image = self.images[app.icon]; ...
随机推荐
- TCP/IP详解 卷一(第十七章 TCP:传输控制协议)
与UDP协议相比,TCP提供一种面向连接的.可靠的字节流服务. TCP首部 跟UDP一样,TCP数据被封装在一个IP数据报中,下面显示TCP的首部数据格式 每个TCP段都包含源端和目的端的端口号,用于 ...
- flashplayer
http://www.adobe.com/support/flashplayer/downloads.html
- 简单的 nginx 多站点配置
测试环境:基于CentOS6.8 编译安装LNMP(http://www.cnblogs.com/afee666/p/6836161.html) 一 需求 在一个 VPS 主机上配置 web 服务器, ...
- iOS将数组中的内容分拼接成字符串
NSString *string = [array componentsJoinedByString:@","];--分隔符
- apktool反编译时各种问题汇总
问题1:apktool d -d 时出现错误Error occured while disassembling class办法:这不是你的错误,这是apktool本身的错误,目前正式release的1 ...
- Intent获取Activity返回值
/* Intent获取Activity返回值* 三步:* 子Activity关闭后的返回值处理函数,requestCode是子Activity返回的请求码,与页面顶端的两个请求码相匹配,resultC ...
- 利用$(window).resize()实现窗口大小自适应宽度问题
© 版权声明:本文为博主原创文章,转载请注明出处 问题描述:利用iframe做页面引入,用$(window).resize()作自适应:结果窗口变小时,利用$(window).width()获取到的宽 ...
- Spring事务管理之声明式事务管理:基于TransactionProxyFactoryBean的方式
© 版权声明:本文为博主原创文章,转载请注明出处 案例 - 利用Spring的声明式事务(TransactionProxyFactoryBean)管理模拟转账过程 数据库准备 -- 创建表 CREAT ...
- PDO中捕获SQL语句中的错误
使用默认模式-----PDO::ERRMODE_SILENT 在默认模式中设置PDOStatement对象的errorCode属性,但不进行其它不论什么操作. 比如: 通过prepare()和exec ...
- DuiVision开发教程(18)-弹出窗
DuiVision的弹出窗体类CDlgPopup,是菜单.下拉列表等控件的父类,也能够单独使用,用于创建弹出窗体.弹出窗体默认是非激活状态下自己主动关闭,比如鼠标点击到弹出窗体外面的区域,弹出窗体就会 ...