美文网首页
UIView显示图片高级技巧

UIView显示图片高级技巧

作者: biyuhuaping | 来源:发表于2017-11-23 14:24 被阅读43次

一、加一个UIImageview在UIView上(还可以)

UIImageView *imageView = [[UIImageView alloc]initWithFrame:self.view.bounds];
imageView.image = [UIImage imageNamed:@"home"];
[self.view addSubview:imageView];

这种方式,原始图片大小不够(小于view的大小),会拉伸图片,让图片失真,view释放后也不会有什么内存保留。

二、通过图片来生成UIColor来设置UIView的背景色。注意是根据图片来生成color(不推荐)

1 . imageName方式:
如果图片较小,并且频繁使用的图片,使用imageName:来加载图片(按钮图片/主页图片/占位图)

self.view.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"home"]]; 

2 . contentOfFile方式:
如果图片较大,并且使用次数较少,使用 imageWithContentOfFile:来加载(相册/版本新特性)

NSString *path = [[NSBundle mainBundle]pathForResource:@"name" ofType:@"png"];  
    self.view.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:path]]; 

以上两种方式都会在生成color的时候消耗大量的内存(原始图片的N倍,这个N可能会达到几千的程度,而且如果原始图片大小不够,就会按照原始大小一个一个U画过去,是不会自动拉伸的。1和2的区别:1中的color不会随着View的释放而释放,而是一直存在于内存中。(再次根据这个图片生成Color的时候,不会再次去申请内存)。而2中的color会随着View的释放而释放。

三、quarCore方式(推荐)

UIImage *image = [UIImage imageNamed:@"3549"];
//推荐这样创建image对象:UIImage *image = [UIImage imageWithContentsOfFile:path];
self.view.layer.contents = (id)image.CGImage;
//背景透明加上这一句
self.view.layer.backgroundColor = [UIColor clearColor].CGColor;

在显示简单的单张图片时,利用 UIView.layer.contents 就足够了,没必要使用 UIImageView 带来额外的资源消耗。

如果对性能优化感兴趣的小伙伴,可以移步这里http://blog.csdn.net/biyuhuaping/article/details/78606226

相关文章

  • UIView显示图片高级技巧

    一、加一个UIImageview在UIView上(还可以) 这种方式,原始图片大小不够(小于view的大小),会拉...

  • 平移缩放区域

    最近有个需求: 将一张图片放到一个UIView上,图片可以缩放,可以平移,但是必须让UIView显示图片,不能让背...

  • 2020-08-08

    //显示图片一部分保证图片不被压缩 photoImageView.contentMode= UIView...

  • UIImageView的图片拉伸(上)

    UIImageView继承自UIView,是用来显示图片的一种控件,在显示过程中,我们有多种显示方式,而真正在操作...

  • UIView 的 layer

    iOS 中能看得见的控件基本都是 UIView,比如按钮、文本、输入框、图片等等。 UIView 之所以能显示在屏...

  • CSS笔记-下篇

    22. CSS高级技巧 目标 理解能说出元素显示隐藏最常见的写法能说出精灵图产生的目的能说出去除图片底侧空白缝隙的...

  • 09-补充进阶

    CSS高级技巧 目标 理解能说出元素显示隐藏最常见的写法能说出精灵图产生的目的能说出去除图片底侧空白缝隙的方法 应...

  • iOS 图片显示技巧

    背景 最近写代码的时候。有这么一件事情。ImageView要加载一个URL对应的图片。按理说这事情很简单。但是遇到...

  • CoreTextDemo2 图文篇

    本文介绍,在一个UIView的子控件上实现图文混排显示,支持本地图片和网络图片的显示,本文暂时不支持点击监听功能 ...

  • Core Animation

    1 UIView与 CALayer是平行的,图层概念 2 CALayer可以直接显示图片,给CALayer的属性c...

网友评论

      本文标题:UIView显示图片高级技巧

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