page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6226 次

3096 个回答

0 赞同

设计个简单的图片内存缓存器?

类似上面SDWebImage实现原理即可 一定要有移除策略:释放数据模型对象

回答于 2021-08-27 09:43

0 赞同

描述下SDWebImage里面给UIImageView加载图片的逻辑?

SDWebImage 中为 UIImageView 提供了一个分类UIImageView+WebCache.h, 这个分类中有一个最常用的接口sd_setImageWithURL:placeholderImage:,会在真实图片出现前会先显示占位图片,当真实图片被加载出来后在替换占位图片 加载图片的过程大致如下: 首先会在 SDWebImageCache 中寻找图片是否有对应的缓存, 它会以url 作为...

回答于 2021-08-27 09:43

0 赞同

使用drawRect有什么影响?

drawRect方法依赖Core Graphics框架来进行自定义的绘制 缺点:它处理touch事件时每次按钮被点击后,都会用setNeddsDisplay进行强制重绘;而且不止一次,每次单点事件触发两次执行。这样的话从性能的角度来说,对CPU和内存来说都是欠佳的。特别是如果在我们的界面上有多个这样的UIButton实例,那就会很糟糕了 这个方法的调...

回答于 2021-08-27 09:43

0 赞同

如何高性能的给 UIImageView 加个圆角?

不好的解决方案 使用下面的方式会强制Core Animation提前渲染屏幕的离屏绘制, 而离屏绘制就会给性能带来负面影响,会有卡顿的现象出现 self.view.layer.cornerRadius = 5; self.view.layer.masksToBounds = YES; 正确的解决方案:使用绘图技术     - (UIImage *)circleImage     {         // NO代表透明        ...

回答于 2021-08-27 09:42

0 赞同

请简述UITableView的复用机制?

每次创建cell的时候通过dequeueReusableCellWithIdentifier:方法创建cell,它先到缓存池中找指定标识的cell,如果没有就直接返回nil 如果没有找到指定标识的cell,那么会通过initWithStyle:reuseIdentifier:创建一个cell 当cell离开界面就会被放到缓存池中,以供下次复用

回答于 2021-08-27 09:40

0 赞同

pushViewController和presentViewController有什么区别?

两者都是在多个试图控制器间跳转的函数 presentViewController提供的是一个模态视图控制器(modal) pushViewController提供一个栈控制器数组,push/pop

回答于 2021-08-27 09:39

0 赞同

沙盒目录结构是怎样的?各自用于那些场景?

Application:存放程序源文件,上架前经过数字签名,上架后不可修改 Documents:常用目录,iCloud备份目录,存放数据 Library Caches:存放体积大又不需要备份的数据 Preference:设置目录,iCloud会备份设置信息 tmp:存放临时文件,不会被备份,而且这个文件下的数据有可能随时被清除的可能

回答于 2021-08-27 09:37

0 赞同

IB中User Defined Runtime Attributes如何使用?

User Defined Runtime Attributes是一个不被看重但功能非常强大的的特性,它能够通过KVC的方式配置一些你在interface builder中不能配置的属性 当你希望在IB中作尽可能多得事情,这个特性能够帮助你编写更加轻量级的viewcontroller

回答于 2021-08-27 09:37

0 赞同

IBOutlet连出来的视图属性为什么可以被设置成weak?

因为父控件的subViews数组已经对它有一个强引用

回答于 2021-08-27 09:36

0 赞同

loadView的作用?

loadView用来自定义view,只要实现了这个方法,其他通过xib或storyboard创建的view都不会被加载 看懂控制器view创建的这个图就行

回答于 2021-08-27 09:36