图片拉伸?纯代码和storyboard的使用情况!
2016-01-08 本文已影响492人
光明程辉
0、拉伸图片的时候怎么才能让图片不变形?
UIImage *image = [[UIImage imageNamed:@"xxx"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];
1、 resizableImageWithCapInsets 和 stretchableImageWithLeftCapWidth 的区别?
-答:
- 相同点:都是用于图片拉伸的。2个方法都可以使用。
- 不同点:一个过时了,另一个没有。
-使用情况看个人!
在没有添加处理图片之前!
左右图片被拉伸了.png如何处理 --图片拉伸? ---有个方法!resizableImageWithCapInsets
1.png运行后的效果!
2.png这也是拉伸!stretchableImageWithLeftCapWidth
-(.这个方法在iOS 5.0出来后就过期了,但是还是有人在用,例如用聊天背景的气泡)--本人不用它了,用上面一个方法就可以完美解决了!
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight __TVOS_PROHIBITED;
- 这种方法的使用是:(前提是知道图片大小,然后取接近中间的点进行拉伸)
分别 用上面的 2 个方法实现!(气泡图片是W:93 H:80)
方法1:
// 拉伸图片 strectchable: 可伸缩的
UIImage * image = [UIImage imageNamed:@"chatto_bg_normal.png"];
image = [image stretchableImageWithLeftCapWidth:45 topCapHeight:55];
_popoImageView.image = image;
方法2:
UIImage * image = [UIImage imageNamed:@"chatto_bg_normal.png"];
// resizable: 可变尺寸的;可调整大小的(这方法也可以)
UIImage * imageRe = [image resizableImageWithCapInsets:UIEdgeInsetsMake(30, 41, 40, 40)];
_popoImageView.image = imageRe;
- 两个方法实现的效果一样:
下面是使用苹果官方推荐使用的storyboard技术!
- 使用起来是非常简单的!你会喜欢上它的!(因为实在太简便了!)
- 原理是一样的,就是在一张图片上,取到中心点得位置,然后,用这个中心点得像素进行拉伸放大!其它不变!
- 就这样就可以了么?
-是的!!!,x 和 y,就是取到图片中心点得位置! -
Width 和 Height 为0.1 就是把它们扩大到你想要的位置了。
storyBoard拉申.png