stretchableImageWithLeftCapWidth

2017-07-17  本文已影响0人  请叫我魔法师

这个方法经常用到拉伸图片,保证看起来图片不变形。比如聊天的气泡、或者图片带有边框图案,为了适配屏幕,保证边框不变形。
PS:看网上好多人讲,都是简单一句话,图片确实拉伸了,但是拉伸的部分我也不清楚,虽然目的达到了,用的也是迷迷糊糊。自己就记录一下,权当给自己加深一下印象了。好记性不如烂笔头。

QQ20170717-111114.png
    UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(10, 70, 80, 80)];
    iv.image = [UIImage imageNamed:@"1111"];
    
    UIImage *iamge = [UIImage imageNamed:@"1111"];
    UIImageView *iv2 = [[UIImageView alloc] initWithFrame:CGRectMake(10, 160, 150, 150)];
    iamge = [iamge stretchableImageWithLeftCapWidth:20 topCapHeight:20];
    iv2.image = iamge;
    
    [self.view addSubview:iv];
    [self.view addSubview:iv2];
QQ20170717-104503.png

说明:图片大小是160x160像素大小。改下名称成了@2x的图片。
所以在手机上显示80x80大小才是正常的显示。
1.经过测试,如果imageview的大小比正常显示即80x80小,这个拉伸不起作用。(废话,拉伸就是让它变大,变小的话拉伸当然没用)
2.不变的区域,是除了那个点之外4个区域,图中黑色边框标注的部分,可以明显看到,如果把这4个区域合起来就是原图了。
3.设置的左边和上边的数值,其实是坐标值,不是像素点位置。它把那个坐标点的那个像素进行了个正方形的复制。图中红色区域。
4.还有剩下的上下左右4个区域,这个4个区域可以观察看到,是拉伸点对应的那一排和一列的像素点进行了复制,除了拉伸点。(拉伸点单独复制成了一个正方形)

上一篇下一篇

猜你喜欢

热点阅读