OC_图片拉伸的几种方式(拉伸、切片)
2016-07-22 08:59
597 查看
OC_图片拉伸的几种方式(拉伸、切片)
拉伸前:(假如给一个button设置一个背景图片)
[self.myButton setBackgroundImage:[UIImage imageNamed:@"004"] forState:UIControlStateNormal];
效果如下:(四周很模糊,明显给用户很渣渣的感觉)
拉伸前效果
第一种:代码拉伸,封装到了一个分类里,直接调用即可:
封装的分类方法:/** * 返回一张可以随意拉伸不变形的图片 * @param name 图片名字 */ +(UIImage *)stretchableImageWithImgae:(NSString *)name{ UIImage *normal = [UIImage imageNamed:name]; CGFloat w = normal.size.width * 0.5; CGFloat h = normal.size.height * 0.5; return [normal stretchableImageWithLeftCapWidth:w topCapHeight:h]; }
执行拉伸代码:
UIImage *image = [UIImage stretchableImageWithImgae:@"004"]; [self.myButton setBackgroundImage:image forState:UIControlStateNormal];
拉伸效果图如下:
拉伸完美效果
第一种补充:resize方法(-resizableImageWithCapInsets)
该方法和第一种基本类似,但是这里不方便的地方就是预留的部分不好把握,因为要拉伸的图片大小不可控,不推荐使用,但是在这里也介绍一下。
UIImage *image = [UIImage imageNamed:@"004"]; CGFloat top = 10; // 顶端预留部分 CGFloat bottom = 10 ; // 底端预留部分 CGFloat left = 40; // 左端预留部分 CGFloat right = 40; // 右端预留部分 UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right); ///注意:拉伸之后一定要赋值回去 image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch]; //UIImageResizingModeStretch:`拉伸`模式,通过`拉伸`Insets指定的矩形区域来填充图片 //UIImageResizingModeTile:`平铺`模式,通过`重复显示`Insets指定的矩形区域来填充图片 [self.myButton setBackgroundImage:image forState:UIControlStateNormal];
第二种:点击图片直接使用切片拉伸:
进入Assets.xcassets -> 选中图片两种开始方式
拉伸方式选择
水平拉伸
垂直拉伸
拉伸的几种拉伸方式选择
拉伸切片模式
执行代码:代码里和平常一样
UIImage *image = [UIImage imageNamed:@"004"]; [self.myButton setBackgroundImage:image forState:UIControlStateNormal];
完美拉伸效果
第二种补充:平铺效果
平铺效果测试
平铺效果成功
第二种补充:聊天气泡效果
聊天气泡测试
聊天气泡效果成功展示
最后的两个补充,代码都是很正常的代码:
UIImage *image = [UIImage imageNamed:@"001"]; [self.myButton setBackgroundImage:image forState:UIControlStateNormal];
怎么样,这个切片拉伸功能强大吧?也很方便吧??推荐使用哦!
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 利用jQuery和CSS将背景图片拉伸
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结
- 检测iOS设备是否越狱的方法