iOS项目之iPhoneX遇到的坑
2024-08-31 13:55:17
问题一:
今天升级到Xcode 9.0,里面多了iPhone 8,iPhone 8P,iPhone X三款手机模拟器,而且发现最多可以同时运行五个模拟器。但随之而来的问题也出现了,就是 iPhone X 的屏幕适配问题,这里我就发现了 Navigation 的高度不一样了,所以先解决这个吧,以后有其他问题,再进行研究。
以前的 iPhone 手机的状态栏高度是 20 的高度,如今 iPhone X 手机状态栏的高度是 44 (我自己的计算),但以前写的宏基本上就不能这样统一的用了,所以做了一些修改。
// 在程序启动的时候,判断手机型号
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (iPhoneX) {
// 如果为 iPhone X 手机时
[SJXSaveService sjx_setObject:@( + ) forKey:@"Nav_Height"];
} else {
[SJXSaveService sjx_setObject:@( + ) forKey:@"Nav_Height"];
}
}
// 在自己的 .pch 文件中添加
#define iPhoneX (SCREEN_HEIGHT == 812)
#define iPhone6P (SCREEN_HEIGHT == 736)
#define iPhone6 (SCREEN_HEIGHT == 667)
#define iPhone5 (SCREEN_HEIGHT == 568)
#define iPhone4 (SCREEN_HEIGHT == 480) /* Nav_Height */
#define Nav_Height [[SJXSaveService sjx_objectForKey:@"Nav_Height"] floatValue]
这样,在程序中还是可以统一使用之前 Navigation 高度的宏定义了。
问题二:
之前在项目中使用了下面的代码来获取网络状态:
NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
然而在 iPhone X 手机上运行时,会报错:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIStatusBar_Modern 0x7fd59fc072e0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key foregroundView.'
所以只好放弃这种方法,使用 AFNetworking 里的 AFNetworkReachabilityManager 来获取网络状态了。
最新文章
- HTTP method POST is not supported by this URL
- DecoratorPattern(装饰器模式)
- OneProxy自动剔除延迟节点
- NYOJ题目769乘数密码
- 学习JAVA的第一天。
- ***CI分页:为CodeIgniter写的分页类
- Android开发之使用AlertDialog创建对话框,单选框和多选框
- Action开发、通配符、路径问题和struts中常量用法
- PHP 导出 Excell
- Qt编译时MinGW去掉对gcc动态库的依赖(去掉对libgcc_s_dw2-1.dll,libstdc++-6.dll的依赖)
- struts校验
- Android 通过onTouchEvent判断是否为双击事件
- Clone of COCO API
- 2018年12月25日 圣诞节快乐 生成器plus
- MVC笔记之一:MVC编程模型
- 基于 CentOS 搭建 FTP 文件服务
- VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)
- WebRTC 源码分析(二):安卓预览
- Hadoop学习之路(十)HDFS API的使用
- Android -- 跳转应用市场评分
热门文章
- 使用Dubbo的SPI扩展机制实现自定义LoadBalance——方法二 不改源码添加META-INF/dubbo元数据
- CodeForces #549 Div.2 D. The Beatles
- 长时间关机测试脚本.VBS
- centos下设置nodejs开机启动
- 原生js实现table表格列宽自由缩放
- p12文件和mobileprovision文件
- Python 3+selenium+unittest+HTMLTestRunner生成测试报告
- VUE-002-前端分页(el-pagination)展示数据
- 手动实现一个list的常用功能
- Hello greenDAO(SQLite)