background image
北风网 iOS 面试题库(六) 
 
写在前面:“分享”看似在输出,但实际上是获得更多。用我们北风网的口号就是“不懂得
分享的人,不会很快乐;不懂得分享的网站,不是好网站”。所以,我们北风网不定期会给
大家分享一些干货,所有的内容仅供学习之用,也希望大家能将“分享的精神”传递下去。 
 
一、iOS7 和 iOS7 以下常见的兼容性问题和解决方法? 
1
、baseline 
(1)原因: autolayout 自动加了 baseline 的 constraints,而 baseline 只有 iOS8 以后才有,兼
容 iOS7 就崩溃了. 
(2)解决:直接移除 baseline 相关的 constraint 即可。 
 
2
、[[UINavigationBar appearance] setTranslucent:NO] 
(1)原因: iOS 8.0 之后[UINavigationBar appearance]才可以 setTranslucent,兼容 iOS7 需要添
加判断。 
(2)解决:兼容 iOS7 需要添加判断: 
if(IOS8_OR_LATER && [UINavigationBar     
conformsToProtocol:@protocol(UIAppearanceContainer)]) { 
                [[UINavigationBar appearance] setTranslucent:NO]; 
 
3
、storyboard segue show 
(1)原因:  在 iOS7 下如果没有设置 navigationController 为 initController,show 会自动将
push
转换成 modal。简而言之就是在 sb 里每个 show 的 segue  。 
(2)解决:保证它的初始位置有个 navigationController。 
 
4
、scrollerView 
(1)原因:找不到    setAutomaticallyAdjustsScrollViewInsets:    方法 
(2)解决:重写方法    setAutomaticallyAdjustsScrollViewInsets: 
 
5
、constrain to margin 
(1)原因:这是设置了 constrain to margins 的关系,这玩意也是 iOS8 后才有的,属于默认
设置,如果点了 constrain to margins,左右会有 8 个点的空挡,从 8 个点后开始计算约束,