Tips 兼容iOS7的几个坑
工作中遇到问题,找到了相应的解决办法,收藏以备不时之需~
1、baseline
- 崩溃信息:
'Unable to create description in descriptionForLayoutAttribute_layoutItem_coefficient. Something is nil'
- 原因
因为偷懒使用了reset to suggested constraints, autolayout 帮我自动加了baseline的constraints,而baseline只有iOS8以后才有,兼容iOS7就崩溃了,直接移除baseline相关的constraint即可。 - 参考链接
http://stackoverflow.com/questions/26024906/unable-to-create-description-in-descriptionforlayoutattribute-layoutitem-coeffi/26045383#26045383
2、[[UINavigationBar appearance] setTranslucent:NO]
- 崩溃信息
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Illegal property type, c for appearance setter, _installAppearanceSwizzlesForSetter:'
- 原因
iOS8.0之后[UINavigationBar appearance]才可以setTranslucent,兼容iOS7需要添加判断if(IOS8_OR_LATER && [UINavigationBar conformsToProtocol:@protocol(UIAppearanceContainer)]) {[[UINavigationBar appearance] setTranslucent:NO];}
- 参考链接
http://stackoverflow.com/questions/19125468/why-does-uinavigationbar-appearance-settranslucentno-crash-my-app
3、storyboard segue show
- 异常现象
sb里segue使用show在iOS8下是正常push的
- 原因
在iOS7下如果没有设置navigationController为initController,show会自动将push转换成modal。简而言之就是在sb里每个show的segue,必须保证它的初始位置有个navigationController。 - 参考链接
http://stackoverflow.com/questions/25633739/could-not-instantiate-class-named-uistoryboardshowseguetemplate-how-can-i-ma
4、constrain to margin
- 异常现象
使用tableview顶部会出现不正常的空白
- 原因
这是设置了constrain to margins的关系,这玩意也是iOS8后才有的,把这个钩去掉,就OK了
5、 imageFromBundle
在iOS8下,下面这段代码是没有问题的。
+ (UIImage *)imagesNamed:(NSString *)name fromBundle:(NSString *)bundleName
{NSString *main_images_dir_path = [[[NSBundle mainBundle] resourcePath] stringByAppendingFormat:@"/%@.bundle",bundleName];NSString *image_path = [main_images_dir_path stringByAppendingPathComponent:name];return [UIImage imageWithContentsOfFile:image_path];
}
而在iOS7下,返回的UIImage是nil。原因是在iOS7下,必须要加上.png
或者@2x.png
,否则[UIImage imageWithContentsOfFile:image_path]
是无法争取找到文件路径的。
原文链接:http://www.jianshu.com/p/be4d7cc3f175
Tips 兼容iOS7的几个坑相关推荐
- Xcode 6.x 上开发APP 兼容 iOS7
2019独角兽企业重金招聘Python工程师标准>>> Xcode 6.x 上开发的APP 可能会出现 : "Unable to create description in ...
- 计算机组装配置兼容,组装电脑常这些坑不要踩 电脑组装的误区
DIY组装电脑简单说来就是把一堆硬件拼凑,组成一个完整的主机.而这其中.CPU.主板.显卡.内存等都是不太容出现问题的.一是由于产品规格严谨,二是产品数量丰富度不高,三是直接关系主机性能,更加被重视. ...
- iOS推送兼容iOS7
最近在用iOS7调试时发现崩溃,原因出在了推送上.记录下来方便以后用到. // 宏定义判断是否是iOS8以后 #define iOS8 [[[UIDevice currentDevice]system ...
- uisearchbar中自定义 放大镜图标 placeolder字体颜色 文本框背景色 兼容ios7
自定义searchbar,重写layoutSubviews就行了,只是ios7以下与IOS7获取UITextField的方法不同,下面是我测试通过的代码: -(void)layoutSubviews ...
- iOS之LCWebView(和并UIWebView和WKWebView,兼容iOS7及以上)
一,说明 我的项目是从iOS7开始支持, 一直用UIWebView作为网页容器. 但是,为了更好的用户体验. 我将UIWebView和WKWebView封装合并成一个网页容器LCWebView. 下面 ...
- windows LSP 实现及多个lsp兼容安装的几个坑
2019独角兽企业重金招聘Python工程师标准>>> 在项目中使用LSP模块时碰到以下几个问题,在此总结下: 1.在64位系统中,针对32位程序和64位程序需要分别实现对应的LSP ...
- 清华专业学位硕士论文[word97-2003兼容版本]格式调整踩坑记录
如何导入现有的word模板 采用插入->对象->文件中的文字选中需要插入的文档,将文档导入当前文档中 正文各个标题样式 先设置好格式,然后右键->样式->创建样式,更改名字即可 ...
- 2019年创业公司死亡全名单
来源:软件定义世界(SDX) 2019年,创业公司太难了. "首富之子"王思聪的熊猫直播已在3月30日正式关闭了."自带流量"的罗永浩也在10月初将锤子科技旗下 ...
- 兼容低版本IE浏览器的一些技巧分享
前言: 近期工作中,突然被要求改别人的代码,其中有一项就是兼容IE低版本浏览器,所以优雅降级吧. 我相信兼容低版本IE是许多前端开发的噩梦,尤其是改别人写的代码,更是痛不欲生. 本文将介绍一些本人兼容 ...
最新文章
- NFV技术本质是强调网络功能的软硬件同化能力,实现网络价值由硬件向软件的前移
- 500只产品汪周末齐聚宇宙中心五道口,这里发生了什么?
- html 手动添加thead,HTML表格 - 我可以在thead之前添加额外的tbody吗?
- 编程语言的发展趋势及未来方向(7):总结
- 什么是无线路由器网络协议?
- twisted系列教程八–延迟的诗
- struts2笔记06-ServletXxxAware接口
- css 三种颜色表示,css颜色表示法
- 小程序学习笔记(6)-菜谱小程序的制作
- 关于改进建议几个方面的有效实践
- matlab 求解发动机换算转速,简单一个公式,教你用发动机转速计算车速!
- [转载]每天早晨含姜片含出三大奇迹/姜的二十种食疗功/生姜克
- kubernetes挂载glusterfs遇到的问题
- UTC时间转北京时间
- Java 程序员 金三银四面试必备:高速突击学习框架 + 性能优化
- 电力电子相关论文英文单词积累
- java log写入txt文件_使用java.util.logging.Logger时如何在文本文件中写日志
- 《H3C交换机常用命令》——【华三交换机常用配置及维护命令技能】
- Spring Boot+JOOQ(五)进阶查询操作
- oracle检测数据表变化,Oracle 检查表的数据变动