美文网首页
IOS 9patch

IOS 9patch

作者: jadn | 来源:发表于2016-09-06 11:00 被阅读167次

    - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

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

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

    CGFloat top =25;// 顶端盖高度

    CGFloat bottom =25;// 底端盖高度

    CGFloat left =10;// 左端盖宽度

    CGFloat right =10;// 右端盖宽度

    UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);

    // 指定为拉伸模式,伸缩后重新赋值

    image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];

    另外一种方式:

    - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:

    (NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。

    根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸。

    注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。

    参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。

    注意:只是对一个像素进行复制到一定宽度。而图像后面的剩余像素也不会被拉伸。

    UIImage *img=[UIImage imageNamed:@"bubbleSelf.png"];

    img=[img stretchableImageWithLeftCapWidth:15 topCapHeight:12];

    UIImageView *imgView=[[UIImageView alloc]initWithImage:img];

    [imgView setFrame:CGRectMake(10, 10, 200, 200)];

    [self. view addSubview:imgView];

    相关文章

      网友评论

          本文标题:IOS 9patch

          本文链接:https://www.haomeiwen.com/subject/phjdettx.html