前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS基础问答面试题连载(二)-附答案

iOS基础问答面试题连载(二)-附答案

作者头像
timhbw
发布2018-05-03 11:55:52
1.3K0
发布2018-05-03 11:55:52
举报
文章被收录于专栏:Timhbw博客Timhbw博客
  • 注意点: - 一旦重写了loadView,表示需要自己创建控制器的View. - 如果控制器的View还没有赋值,就不能调用控制器View的get方法.会造成死循环. 因为控制器View的get方法底层会调用loadView方法.

11.UIPickView是什么控件,基本用法怎样的?
  • UIPickView选择控件,用来供用户选择一些城市等.它的基本用法与tableView基本相似,要设置数据源,代理, 让其展示数据
12.KVC底层实现?
  • 拿字符串与当前类的属性进行匹配.如果匹配到,就给该属性赋值.flagItem setValue:obj forKeyPath:key;
  • 会找有没有跟key值相同名称的set方法,如果有,就会调用set方法,把obj传入
  • 如果说没有set方法.那么它会去找没有相同名称,并且带有下划线的成员属性,如果有就会给该属性赋值.
  • 如果也没有带有下划线的成员属性,就看有没有跟它相同名称的成员属性,如果有就会给该属性赋值.
  • 如果还没有跟它相同名称的成员属性,就会调用setValue:(id)value forUndefinedKey:
  • 如果没有实现setValue: forUndefinedKey: 就直接报错
13.导航控制器View的结构是怎样的?
  • 一个专门存放栈顶控制器View的View
  • 一个导航条,导航条的高度为44,Y值为20
14.导航push做了哪些事情?
  • 当调用push方法时, 会把要push的控制器添加到导航控制器管理的栈中,把之前导航控制器中栈顶控制器View给移除,把当前栈顶控制器添加上去.
15.导航pop做了哪些事情?
  • 当调用pop方法时, 会把要pop的控制器从栈里移除,把之前导航控制器中栈顶控制器View给移除,把当前栈顶控制器添加上去.
16.如何设置导航条的内容?
  • 导航条的内容由导航控制器的栈顶控制器的NavigationItem决定.
17.导航控制器pop操作有哪些?
  • 返回上一级
  • 返回到根控制器
  • 返回到指定的控制器.
18.文本框如何拦截用户输入?
  • 给指定的文件框,设置代理 ,实现代理方法.里面包括是否允许开始编辑,是否允许结束编辑,是否允许改变字符等等.
19.如何自定义键盘?
  • 自定义键盘,要继承系统的UITextField,设置文本框的一个属性,该属性名称为inputView.这样就可以把键盘定义成自己要想的View.
20.导航控制器的作用?
  • 导航控制器可以轻松的完成控制器之间的切换.其操作有push,pop等.

21.自动跳转与手动型跳转区别?
  • 自动跳转:通过控件直接拖线的方式进行跳转
  • 手动跳转:在跳转之前要去做一些处理工作. 必须得要执行performSegueWithIdentifier:才能跳转.
22.什么时候使用代理 ,代理的步骤?
  • 当一个对象发生某一件事时,想要把自己的东西传给别人.或是通知别人做某事使用代理.
  • 使用场景: 上下级之间,通常是它的上一级成为它的代理.
  • 步骤:
  • 定义协议
  • 定义代理属性
  • 在.m文件当中调用代理方法
  • 设置代理
  • 遵守协议
  • 实现协议方法

23.ios当中存储方式有哪些?
  1. XML属性列表(plist)
  2. Preference(偏好设置)
  3. NSKeyedArchiver,只有遵守NSCoding协议的对象才可以使用这种方式。
  4. SQLite
  5. Core Data

24.tableView性能优化
  1. tableView的缓存机制.
  2. 在不等高Cell当中,提前计算Cell的行高.提前估一个行高.200-250
  3. 如果说Cell当中有圆形图片,图片不要用ImageView加载layer.corneadius裁剪去做.会造成离屏渲染. 用绘图Qurarzds裁剪,生成一张圆形的图片.
  4. 如果说图片的宽高,指定为小数点.会造成锯齿,造成锯齿就会导致离屏渲染
  5. cell当中的ImageView的大小最好是跟UIImage是一样大,如果不一样大 它会对UIImage做形变操作.cell当中展示都是小图.小图的大小跟ImageView  点击放大,是再去用大的ImageView加载大图.
  6. 做tableView的时候一定要用真机.
  7. 如果是从网络加载数据,一定要放到子线程(异步加载)当中做.
  8. 加载完毕的数据一定做本地缓存.
  9. cell当中不要动态的添加子控件.一般都在创建时,就把要出现的Cell给添加进去,暂时不要显示的,可隐藏.
  10. 尽量减少Cell内部子控件的个数.
  11. 如果控件非常多,把不需要与用户进行交互的控件.能过异步绘制出来.生成一张图片.把图片添加到cell当中

此处为隐藏的内容!

发表评论并刷新,才能查看

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-212,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.xcode5和xcode7区别?
  • 2.pch文件原理?
  • 3.UIApplication常见功能?
  • 4.程序完整启动流程?
  • 5.UIWindow是什么?
  • 6.手动创建窗口的步骤?
  • 7.makeKeyAndVisible做了哪些事情?
  • 8.如何从从StoryBoard加载控制器?
  • 9.initWithNibName的加载过程?
  • 10.LoadView 作用以及使用LoadView的注意点?
  • 11.UIPickView是什么控件,基本用法怎样的?
  • 12.KVC底层实现?
  • 13.导航控制器View的结构是怎样的?
  • 14.导航push做了哪些事情?
  • 15.导航pop做了哪些事情?
  • 16.如何设置导航条的内容?
  • 17.导航控制器pop操作有哪些?
  • 18.文本框如何拦截用户输入?
  • 19.如何自定义键盘?
  • 20.导航控制器的作用?
  • 21.自动跳转与手动型跳转区别?
  • 22.什么时候使用代理 ,代理的步骤?
  • 23.ios当中存储方式有哪些?
  • 24.tableView性能优化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档