版本适配
5、接触过几个iOS版本,在版本兼容方面有哪些感悟。
接触过iOS6、iOS7、iOS8、iOS9,已经更新至iOS9。其实不管iOS是哪个版本,在苹果设备上面的使用体验都不会太差。
http://www.cnblogs.com/salam/p/4344582.html iOS及历史版本特性介绍
http://iphone.tgbus.com/faq/201509/20150909161107.shtml iOS9
5.纯代码写布局的参数
纯代码创建七个参数
关于常用的手码约束的第三方框架
有Masonry和UIView+Autolayout
框架地址是:
https://github.com/Masonry/Masonry
https://github.com/smileyborg/UIView-AutoLayout
UIView+Autolayout框架
这个相对于masonry,是个轻量级的框架易于上手,里面一共也就两个文件。也非常好用,都是用auto开头。适用于约束不经常改变的项目
Masonry框架
这个框架是重量级的里面好多文件,难于上手,但是用熟练了的话比上面那个牛X,适合于约束要经常改变的项目。
16.ipone4/iphone5/iphone6/iphone6Plus的屏幕尺寸
ipone4屏幕尺寸320 x 480屏幕分辨率960x640
iphone5屏幕尺寸320 x 568屏幕分辨率640x1136
iphone6屏幕尺寸375 x 667屏幕分辨率640x1334
iphone6Plus屏幕尺寸414 x 736屏幕分辨率1080x1920
13.适配6Plus;
第1条:选用自适应布局和通用Storyboard
第2条:开启全屏显示模式与启动画面文件
第3条:新一代Retina显示屏和@3x图片
第4条:修复位置许可
第5条:修复通知注册
第6条:友好的二次许可请求
第7条:释放Swift语言的力量
第8条:重要的API隐退或更新信息
第9条:新增的酷炫视觉效果
感悟:
每一次升级,是对前一版系统的不足进行修补或新功能的发布。
一个项目(Project)可以有多个目标(Target),每个目标可以指定不同的设置(例如支持不同的系统版本,引用不同的Framework等)。项目设置会覆盖默认设置,而每个目标的设置则会覆盖项目设置。在Xcode的项目浏览窗口中点击项目,在TARGETS中选择某个目标,即可在右侧的“Build Settings”中看到默认设置、项目设置、所选目标设置与最终的设置值。
例如,当使用Xcode 5打开某个项目时,Base SDK为7.0,也就是用7.0的SDK来编译链接项目app。如果这个app只想支持iOS 7系统,则Deployment Target可以设置为7.0。如果你的app还想兼容iOS 6或者更早版本,则应把Deployment Target置为要支持的最低的系统版本号。由此可知,Deployment Target一定小于等于Base SDK。
注意,因为此时是用最新的SDK生成app,但却允许在早期版本的系统上运行,所以此时开发者要确认在旧系统上运行app时不能调用那些新的SDK中添加的功能,否则会在运行时出错导致app闪退。下面就介绍一下如何确保app能够在旧的系统上正确运行。
app在旧的系统上运行的过程中,可能会使用系统未提供的常量、变量、C函数、类、类的方法,也可能会调用不存在的Framework中的功能。对于Xcode4.6.3及更早版本,程序可以编译通过,但运行时闪退。Xcode 5则进行了很大改进,如果代码中出现了上述情况,直接给出警告和错误。
43.iOS9的一些新功能
一、将iCloud Driver显示在桌面
二、Siri静音
三、选取多张照片
四、隐藏照片
五、全新的备忘录
六、在spotlight隐藏app的搜索
七、低电量模式
25.StoreBoard和纯代码编程各有什么好处?还有运行时机制。
(1)StoreBoard优点:
效率高;
Auto Layout,做适配很方便;
多语言很方便;
静态TableView,CollectionView极其方便;
最重要的是直观,结构清晰,一目了然!
(2)缺点:
不适合团队开发使用;适合大号显示器,尤其是iPad开发!
缺点解决方案:
冲突问题:storyboard一般只是用于展示页面布局,布局不是个经常变动的东西,如果需要修改,修改的次数也非常的少。一般在团队中专门约定几名负责人专门修改页面布局就可以了。如果真的需要很多人改,请拆分storyboard。
性能问题:性能的瓶颈真的在这里吗?有这些时间多多优化一下代码,多使用异步block的效果更为明显吧。
大型项目的问题:大型项目中细分storyboard不仅可以解决打开卡顿的问题,也会使产品线更为直观。
复用问题:storyboad的确不能复用,可复用的组件可以用NIB进行封装,然后引入storyboad。
(3)什么时候使用storyboard?
组织多种view的层级关系,也就是传说中的segue。使用一些列表或表格单元的模板的时候。能使用storyboard的情况下尽量用storyboard。
什么时候不建议使用storyboard?
动态或复杂布局,这时候可能需要用代码来计算相关view的位置。如果一个view已经用NIB或代码实现
(4)什么时候使用nib?
模态框(如登录提示什么的)可复用视图组件或模板
什么时候不推荐使用nib?
有动态内容的视图
不方便在IB中进行设计的试图
(5)什么时候使用代码?
纯代码好处就是灵活,接手项目的时候好改。缺点,很明显慢。
动态布局
试图特效
什么时候不推荐使用代码?
什么时候使用代码都是一个好方法,但不一定是最好的。
31.有没有做适配?怎么做的?
纯代码可以使用masonry,可视化编程使用AutoLayout