iOS图片圆角设置的正确姿势

最近从上一家公司辞职,一直处于待业状态,顺便再家里带带闺女,今天有时间,所以写点东西,希望刚开始接触iOS开发的小白能够有所收获。

在iOS开发中圆角图片很常见,但是我们一般在设置图片圆角的时候几乎都是这样设置的:

  UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 50, 50)];

image.layer.cornerRadius = 25.0;

image.layer.masksToBounds = YES;

这种设置,我们感觉没有什么不对,也能够实现需求(圆角),但是我们刚开始做iOS开发的时候,往往忽略性能的问题,这并没有什么,都是从小白开始的。这种设置特别是在cell中设置,假设cell的个数无限大,那么就很糟糕了,那么怎么解决呢,我们可以这样改动一下就行了。当然这只是其中的一部分的解决方案:

   UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 50, 50)];

image.layer.cornerRadius = 25.0;

image.layer.masksToBounds = YES;

image.layer.shouldRasterize = YES;

image.layer.rasterizationScale =[UIScreen mainScreen].scale;

  首先,我需要给大家说一下这两个属性,rasterizationScale这个属性和shouldRasterize属性,我直接从API中截图出来吧,大家看看(自己英语水平有限,哈哈哈):

简单来说就是:

当shouldRasterize设成YES时,UIView会被渲染成一个bitmap,并缓存起来等下次使用时就不会再重新去渲染了。如果每次页面出来时都渲染的话,那么消耗太大,如果shouldRasterize = YES,下次就只是简单的从渲染引擎的cache里读取那张bitmap,节约系统资源。

当你设置的圆角很少的时候可能会感觉不到后者有什么优势,但是当你的cell中有无限的图片需要设置圆角的时候你就会觉得突然会很流畅了。

时间: 2024-10-12 21:26:09

iOS图片圆角设置的正确姿势的相关文章

iOS图片设置圆角

一般我们在iOS开发的过程中设置圆角都是如下这样设置的. imageView.clipsToBounds = YES; [imageView.layer setCornerRadius:50]; 这样设置会触发离屏渲染,比较消耗性能.比如当一个页面上有十几头像这样设置了圆角 会明显感觉到卡顿. 这种就是最常用的,也是最耗性能的. 注意:ios9.0之后对UIImageView的圆角设置做了优化,UIImageView这样设置圆角 不会触发离屏渲染,ios9.0之前还是会触发离屏渲染.而UIBut

iOS图片设置圆角性能优化

问题 圆角虽好,但如果使用不当,它就是你的帧数杀手,特别当它出现在滚动列表的时候.下面来看圆角如何毁掉你的流畅度的. 实测 layer.cornerRadius 我创建了一个简单地UITableView视图,为每个cell添加了2个UIImageView实例,且为UIImageView实例进行如下设置 aImageView.layer.cornerRadius = aImageView.frame.size.width/2.0; aImageView.layer.masksToBounds = 

程序员取悦女朋友的正确姿势---Tips(iOS美容篇)

前言 女孩子都喜欢用美图工具进行图片美容,近来无事时,特意为某人写了个自定义图片滤镜生成器,安装到手机即可完成自定义滤镜渲染照片.app独一无二,虽简亦繁. JH定律:魔镜:最漂亮的女人是你老婆魔镜:程序员不是木头人 核心技术 图片滤镜核心技术的基本思路如下: 核心技术流程 具体流程 1.创建一个图像处理工具类 注:该类实例包括一个图像处理方法,该方法在传入原始图像和一个颜色矩阵后生成一个处理好的图像. @interface JHFeilterManager : NSObject @proper

ios监听ScrollView/TableView滚动的正确姿势

主要介绍 监测tableView垂直滚动的舒畅姿势 监测scrollView/collectionView横向滚动的正确姿势 1.监测tableView垂直滚动的舒畅姿势 通常我们用KVO或者在scrollViewDidScroll代理方法中监听ScrollView/TableView的contentOffset,比如监听TableView的contentOffset来设置导航栏的透明度或者拉伸顶部的图片. image image 常见的姿势是在scrollViewDidScroll的代理方法中

判断是否为gif/png图片的正确姿势

判断是否为gif/png图片的正确姿势 1.在能取到图片后缀的前提下 1 2 3 4 5 6 7 8 9 //假设这是一个网络获取的URL NSString *path = @"http://pic3.nipic.com/20090709/2893198_075124038_2.gif"; // 判断是否为gif NSString *extensionName = path.pathExtension; if ([extensionName.lowercaseString isEqua

iOS 中开发圆角设置

图片框圆角处理(UIImageView):添加QuartzCore.framework导入库头文件#import “QuartzCore/QuartzCore.h” //圆角设置 imageView.layer.cornerRadius = 8;(值越大,角就越圆) imageView.layer.masksToBounds = YES; //边框宽度及颜色设置 [imageView.layer setBorderWidth:2]; [imageView.layer setBorderColor

wpf 设置图片圆角

设置页面布局的时候.遇到了设置图片圆角问题,然后试了几种方法,都可以 第一种: <Border CornerRadius="50" BorderBrush="Blue" BorderThickness="2" Width="200" Height="200"> <Border.Background> <ImageBrush ImageSource="\pj\123.j

新手第一次使用burpsuite正确姿势

最近我们课程,有个老师需要我帮忙搭建做一个越权攻击的实验.就随手倒腾起burpsuite:最近时间逐渐也比较多了,发现web安全工程师基础入门课程,讲师在第七课对于burpsuite的细节并没有掌握的很好,在浏览器代理操作过程,一直卡在无法顺利抓捕数据包,有点尴尬. 同时我也好久好久不做安全有关的事情,忙于客服.图片设计.美工ui.编辑.销售.运营.项目管理.项目开发层面上,对于课程审查就快速跳过查审,时间实在不够用,没有第一时间给讲师反馈建议很抱歉,对不起. 工具安装与破教程 基于第一次bur

docker centos rpm离线安装1.8.2及pull的正确姿势

1.离线安装 本次只针对1.8.2版本,所需要的rpm包如下 docker-engine-1.8.2-1.el7.centos.x86_64.rpm(已上传51cto) libcgroup-0.41-8.el7.x86_64.rpm libcgroup-devel-0.41-8.el7.x86_64.rpm libcgroup-pam-0.41-8.el7.x86_64.rpm libcgroup-tools-0.41-8.el7.x86_64.rpm(libcgroup请参考开源镜像库) 简单