面试总结1

2021-03-19  本文已影响0人  Xl_Lee

性能优化

1.造成tableView卡顿的原因有哪些?

2.如何提升 tableview 的流畅度?

3.APP启动时间应从哪些方面优化?

App启动时间可以通过xcode提供的工具来度量,在Xcode的Product->Scheme-->Edit Scheme->Run->Auguments中,将环境变量DYLD_PRINT_STATISTICS设为YES,优化需以下方面入手

如何降低APP包的大小

降低包大小需要从两方面着手

如何检测离屏渲染与优化

怎么检测图层混合

1、模拟器debug中color blended layers红色区域表示图层发生了混合

2、Instrument-选中Core Animation-勾选Color Blended Layers

避免图层混合:

UILabel图层混合解决方法:

iOS8以后设置背景色为非透明色并且设置label.layer.masksToBounds=YES让label只会渲染她的实际size区域,就能解决UILabel的图层混合问题

iOS8 之前只要设置背景色为非透明的就行

为什么设置了背景色但是在iOS8上仍然出现了图层混合呢?

UILabel在iOS8前后的变化,在iOS8以前,UILabel使用的是CALayer作为底图层,而在iOS8开始,UILabel的底图层变成了_UILabelLayer,绘制文本也有所改变。在背景色的四周多了一圈透明的边,而这一圈透明的边明显超出了图层的矩形区域,设置图层的masksToBounds为YES时,图层将会沿着Bounds进行裁剪 图层混合问题解决了

日常如何检查内存泄露?

源码理解

1.YYKit

YYKit 是一组庞大、功能丰富的 iOS 组件。

我们需要从组件架构,源码,设计思路,解决问题的方案策略等多方面去学习

SDWebImage加载图片过程

0、首先显示占位图

1、在webimagecache中寻找图片对应的缓存,它是以url为数据索引先在内存中查找是否有缓存;

2、如果没有缓存,就通过md5处理过的key来在磁盘中查找对应的数据,如果找到就会把磁盘中的数据加到内存中,并显示出来;

3、如果内存和磁盘中都没有找到,就会向远程服务器发送请求,开始下载图片;

4、下载完的图片加入缓存中,并写入到磁盘中;

5、整个获取图片的过程是在子线程中进行,在主线程中显示。

YYWebImage和SDWebImage对比

AFNetworking 底层原理分析

AFNetworking是封装的NSURLSession的网络请求,由五个模块组成:分别由NSURLSession,Security,Reachability,Serialization,UIKit五部分组成

上一篇 下一篇

猜你喜欢

热点阅读