UIImage部分拉伸——stretchableImageWithLeftCapWidth的使用



简介:有时候我们只是想把图片部分拉伸,而不是全部拉伸,那么就要用到下面这个函数,并附上实例验证

   - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
   //leftCapWidth:左边不拉伸区域
   //topCapHeight:上面不拉伸区域

对距离leftCapWidth的1竖排像素,和具体topCapHeight的1横排像素进行拉伸,其它像素不拉伸



练习一:理解拉伸点,左边和上面分开设置,从效果图来理解。

    self.view.backgroundColor = [UIColor darkGrayColor];

    //不设置拉伸点,直接设置
    UIImage *image1 = [UIImage imageNamed:@"QQ"];
    UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(10, 100, 170, 170)];
    imageView1.image = image1;
    [self.view addSubview:imageView1];

    //设置拉伸点,对左边和上面分开设置,理解其拉伸效果
    UIImage *image2 = [UIImage imageNamed:@"QQ"];
    image2 = [image2 stretchableImageWithLeftCapWidth:0 topCapHeight:image2.size.height*0.5];
    UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:CGRectMake(190, 100, 170, 170)];
    imageView2.image = image2;
    [self.view addSubview:imageView2];


效果图



横向拉伸:

    image2 = [image2 stretchableImageWithLeftCapWidth:image2.size.width*0.5 topCapHeight:0];


效果图:



练习二:最近做到一个聊天框的联系,对文字背景图片的拉伸应用,左边的小三角我不希望拉伸,拉伸影响美观,只拉伸右边方框部分,那么调用此函数就可以实现,这个较为常用。

    //不设置拉伸点,直接设置
    UIImage *image1 = [UIImage imageNamed:@"chat"];
    UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 200, 80)];
    imageView1.image = image1;
    [self.view addSubview:imageView1];

    //设置拉伸点
    UIImage *image2 = [UIImage imageNamed:@"chat"];
    image2 = [image2 stretchableImageWithLeftCapWidth:image2.size.width*0.5 topCapHeight:image2.size.width*0.8];
    UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:CGRectMake(100, 200, 200, 80)];
    imageView2.image = image2;
    [self.view addSubview:imageView2];


效果图:



转载注明出处,然而这只是句废话,并没啥人转载,哈哈哈哈哈~

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 17:46:29

UIImage部分拉伸——stretchableImageWithLeftCapWidth的使用的相关文章

xcode UIImage图片拉伸

图片拉伸 +(UIImage*)wlisWithImage:(NSString *)name{ //获取图片 UIImage * img=[UIImage imageNamed:name]; //获取图片宽 CGFloat imgW=img.size.width; //获取图片高 CGFloat imgH=img.size.height; //获取可拉伸的图片 return [img resizableImageWithCapInsets:UIEdgeInsetsMake(imgH*0.5, i

UIImage图片拉伸问题

- (UIImage *)stretchableImageWithLeft CapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度. 根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸. 注意:可拉伸的范围都是距离leftCapWidth后

图片拉伸: stretchableImageWithLeftCapWidth

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight: (NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度. 根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸. 注意:可拉伸的范围都是距离leftCapWidth后

图片的拉伸stretchableImageWithLeftCapWidth

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight: (NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度. 根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸. 注意:可拉伸的范围都是距离leftCapWidth后

iOS UIimage的拉伸的三种方法

第一种方法 // - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight __TVOS_PROHIBITED; //leftCapWidth:左边不拉伸区域 //topCapHeight:上面不拉伸区域 UIImage *image =[UIImageimageNamed:@"chatdetail_info_other"]; UI

拉伸图片的几种方式

问题:当图片比较小,而图片框.或者按钮,比较大,图片填充整个按钮会导致变形,通过拉伸图片可以使得虽然拉伸而不变形. 拉伸处理后: 方式1.通过resizableImageWithCapInsets:resizingMode方法. - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode NS_AVAILABLE_IOS(6_0);

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

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

UIImage

UIImage *image = [UIImage imageNamed:@"message_i"];//对图片进行切分     image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(16, 16, 16, 30) resizingMode:UIImageResizingModeStretch]; _imageView.image = image // [self setClipsToBounds:YES];      

ios中图片拉伸的几种方式

1. UIImageView整体拉伸 UIImageView-contentMode typedef NS_ENUM(NSInteger, UIViewContentMode) {     UIViewContentModeScaleToFill,         // 默认 拉伸(会变形)     UIViewContentModeScaleAspectFit,      // 等比例拉伸     UIViewContentModeScaleAspectFill,     // 等比例填充