图片拉伸(有保护区域) resizableImageWithCapInsets

在仿写QQ会话的时候背景蓝色图片是拉伸而来,但是有些地方是受保护的不能拉伸

所以定义了下面的工具类中的一个方法,专门拉伸图片

UIImageResizingModeStretch:拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片

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

+ (UIImage *)resizeWithImage:(UIImage *)image{

CGFloat top = image.size.height/2.0;

CGFloat left = image.size.width/2.0;

CGFloat bottom = image.size.height/2.0;

CGFloat right = image.size.width/2.0;

return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch];

}

对图片进行拉伸的函数,为了实现下面的功能

resizableImageWithCapInsets有四个值上下左右

上下左右的值定义了受保护区域,能被拉伸的地方是中间区域,一般我们都设成中心点为了安全

时间: 2024-12-29 13:07:48

图片拉伸(有保护区域) resizableImageWithCapInsets的相关文章

uiimage相关问题(图片拉伸)

UIImage *backgroundImage= [UIImage imageNamed:@"bg_headimage"]; //图片拉伸 UIImage *newImage=[backgroundImage resizableImageWithCapInsets:UIEdgeInsetsMake(10, 10, 10, 10) resizingMode:UIImageResizingModeStretch]; UIImageView *backGroundImageView=[[U

iOS 图片拉伸 resizableImageWithCapInsets

UIImage *image =  [[UIImage imageNamed:@"test.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)]; 其中Insets这个参数的格式是(top,left,bottom,right),从上.左.下.右分别在图片上画了一道线,这样就给一个图片加了一个框. 只有在框里面的部分才会被拉伸,而框外面的部分则不会改变. 4个参数是上边界,左边界,下边界,右边界距离,也可以为负

iPhone图片拉伸:resizableImageWithCapInsets

今天做了一个温度计的应用,需要一个图,能够根据输入的数据将温度计里面的红色图片拉伸.为了达到这个效果,使用了iOS5的函数:resizableImageCapInsets:(UIEdgeInsets)Insets. 最近终于申请到苹果开发者账号!搞的好烦啊!给大家带福利了! 想真机调试,上架应用,将IPA打包给朋友用,或者申请开发者账号的请联系我! 我的QQ号:593325657 真机调试有99个限制的,想要的话尽快联系! 其中Insets这个参数的格式是(top,left,bottom,rig

IOS图片拉伸技巧

IOS 图片拉伸技巧 对于有些图标等按钮 在美工设计的按钮下可以通过拉伸效果处理所需效果,最熟悉的莫过于微信聊天的 椭圆背景,也是通过这个这个原理进行背景图片.  如对该图片拉伸,如何操作? 首先找到要拉伸的部分,很明显 两侧椭圆是不变 要拉伸的是中间部分,如何指定中间部位,先看下图 指定这4个宽度后 会形成黑色模块 直白点就是 这块内容就是拉伸后中间那块不断填充的部分 具体代码: 1 UIImage* img=[UIImage imageNamed:@"2.png"];//原图2 U

图片拉伸的几种方式

前言 - 之前虽然会图片拉伸,但是IOS中有好几种方法可以图片拉伸.以前没有时间整理,今天准备把目前我所知道的几种方法整理出来,重点介绍非代码的方式. 方法  1. IOS5之前 这个方法,你只要填写左边和上边的长度,然后右边和下面的长度会用总长度减一,方法会自动用中间的那一个点来拉伸. - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeigh

iPhone图片拉伸的几种方法

iPhone图片拉伸的几种方法 UIImageResizingModeTile和 UIImageResizingModeStretch两种模式,从名字就可以看出,是平铺模式和拉伸模式.平铺就是复制你Insets指定的矩形区域块来填充你所指定的图片区域,而拉伸就是通过拉伸你Insets指定的矩形区域块来填充你 所需的图片区域. 系统至ios6之后,关于图片拉伸的方法已经扩展至3个函数: 1.ios4提供的方法: - (UIImage *)stretchableImageWithLeftCapWid

ios图片拉伸

 button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50: // 得到view的尺寸 CGSize viewSize = self.view.bounds.size; // 初始化按钮 UIButton *button = [[UIButton alloc] init]; // 设置尺寸 button.bounds = CGRectMake(0, 0, 150, 50); // 设置位置 button.center = CGPointMake(viewSiz

iOS图片拉伸的几种方法

系统至ios6之后,关于图片拉伸的方法已经扩展至3个函数: 1.ios4提供的方法: - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域距离左边框的宽度,第二个参数是不拉伸区域距离上边框的宽度,其操作本质是对一个像

UI基础——按钮内边距,图片拉伸

一.内边距 UIButton有三个属性,分别可以设置按钮以及内部子控件的内边距 1.contentEdgeInsets 如果是设置contentEdgeInsets, 会把UIImageView和UIlabel当做一个整体移动 btn.contentEdgeInsets = UIEdgeInsetsMake(30, 0, 0, 0); 对应状态: 2.titleEdgeInsets/imageEdgeInsets 如果是设置titleEdgeInsets/imageEdgeInsets. 那么不