美文网首页iOS、swift技术交流!
图片拉伸?纯代码和storyboard的使用情况!

图片拉伸?纯代码和storyboard的使用情况!

作者: 光明程辉 | 来源:发表于2016-01-08 10:47 被阅读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;

    • 这种方法的使用是:(前提是知道图片大小,然后取接近中间的点进行拉伸)
    拉伸图片.png

    分别 用上面的 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;
    
    • 两个方法实现的效果一样:
    666.png

    下面是使用苹果官方推荐使用的storyboard技术!

    • 使用起来是非常简单的!你会喜欢上它的!(因为实在太简便了!)
    • 原理是一样的,就是在一张图片上,取到中心点得位置,然后,用这个中心点得像素进行拉伸放大!其它不变!
    • 就这样就可以了么?
      -是的!!!,x 和 y,就是取到图片中心点得位置!
    • Width 和 Height 为0.1 就是把它们扩大到你想要的位置了。


      storyBoard拉申.png

    相关文章

      网友评论

        本文标题:图片拉伸?纯代码和storyboard的使用情况!

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