IOS开发-09.图片拉伸不变形
2015-07-13 23:00
1026 查看
1.概述
在开发中我们经常会设置控件的背景图片,有时图片太小,而一般系统默认的图片内容显示是填充整个视图的,这个时候若是图片四角是圆角或其他不规则形状的话,在拉伸后会造成图片变形,为了解决这种情况,苹果特别提供了一些方法来保证图片在拉伸后,四角不变形图例
2.故事板中直接设置
方法1:在Xcode6之后,我们可以在资源文件中直接设置图片的属性,通过设置slicing属性,默认情况下是none,我们可以设置水平方向拉伸,垂直方向拉伸,以及水平方向和垂直方向都拉伸
-方法2:
实现原理和方法一类似,只不过更加直观,我们可以直接选择show overView,通过拖拽直接设置可拉伸区域,更加直观
3.代码设置
1.iOS5以前的方法实现原理(了解)// LeftCapWidth: 左边多少不能拉伸 // 右边多少不能拉伸 = 控件的宽度 - 左边多少不能拉伸 - 1 // right = width - leftCapWidth - 1 // 1 = width - leftCapWidth - right // topCapHeight: 顶部多少不能拉伸 // 底部有多少不能拉伸 = 控件的高度 - 顶部多少不能拉伸 - 1 // bottom = height - topCapWidth - 1 // 1 = height - topCapWidth - bottom // stretchableImageWithLeftCapWidth:返回一个新的图片 UIImage *newImage = [image stretchableImageWithLeftCapWidth:5 topCapHeight:5];
2.IOS 5实现方法(了解)
// UIEdgeInsets是告诉系统哪些地方需要受保护, 也就是不可以拉伸 // resizableImageWithCapInsets默认拉伸方式是平铺 UIEdgeInsets insets = UIEdgeInsetsMake(image.size.height * 0.5, image.size.width * 0.5, image.size.height * 0.5, image.size.width * 0.5);//这里设置保护区域后,会在中心点很小的一个视图进行拉伸 UIImage *newImage = [image resizableImageWithCapInsets:insets];
3.IOS 6以后的实现方法
UIButton *btn = [[UIButton alloc] init]; UIImage *image = [UIImage imageNamed:@"图片名称"]; // resizingMode指定拉伸模式 // 平铺UIImageResizingModeTile // 拉伸UIImageResizingModeStretch UIEdgeInsets insets = UIEdgeInsetsMake(5, 5, 5, 5); UIImage *newImage = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch]; [btn setBackgroundImage:newImage forState:UIControlStateNormal]; btn.frame = CGRectMake(100, 100, 200, 80); [self.view addSubview:btn];
相关文章推荐
- iOS 笔记一: 对象创建、动态绑定、内审
- ios 集成百度sdk
- iOS 蓝牙开发那些事
- iOS中形参个数可变的方法
- IOS 根据输入值改变button颜色
- IOS 分节表视图
- iOS 各种传值方式
- IOS开发-08.自定义按钮
- IOS开发-07.自定义HUD(提示框)
- iOS之NSAttributedString-------字符属性
- IOS 带搜索栏表视图
- IOS 创建简单表视图
- iOS核心动画高级技巧之图层变换和专用图层(二)
- iOS系统中使用OpenCV(备注有空研究一下)
- IOS开发-06.提示框
- iOS实现抽屉效果
- 使用蒲公英来发布iOS内侧版本
- iOS开发常用的第三方类库
- IOS编程的一些基本概念
- iOS 本地加载js文件