iOS-适配iPhoneX相关
来源:互联网 发布:面对困难迎难而上 知乎 编辑:程序博客网 时间:2024/04/28 17:21
屏幕大小
iPhone X 的屏幕宽度同 iPhone 6、iPhone 6s、iPhone 7 和 iPhone 8 的 4.7 英寸屏幕宽度相同,即 375pt。屏幕垂直高度增加了 145pt,增加了 20% 的可视空间。
竖屏规格:1125px × 2436px (375pt × 812pt @3x)
横屏规格:2436px × 1125px (812pt × 375pt @3x)
状态栏
高度增加了24像素
导航栏高度
导航栏高度是 44 + 44pt
TabBar 和 ToolBar
TabBar高度增加了34像素 UITabBar frame = (0 729; 375 83);
ToolBar高度不变,只是向上偏移了34像素 UIToolbar frame = (0 730; 375 48);
导航栏背景未扩展到状态栏
解决方案:
设置Navigationbar的UIBarPositioningDelegate返回UIBarPositionTopAttached即可。
- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar { return UIBarPositionTopAttached;}
App 未全屏显示
LaunchImage 中添加一个和 iPhone X 相关的启动图片 ,图片尺寸:1125 * 2436
Safe Area 大小
竖屏 UIEdgeInsets - top : 44.0 - left : 0.0 - bottom : 34.0 - right : 0.0横屏 - top : 0.0 - left : 44.0 - bottom : 21.0 - right : 44.0
Safe Area 要求最低支持 iOS9.0
控制器生命周期之viewSafeAreaInsetsDidChange
- viewDidLoad
- viewWillAppear
- viewSafeAreaInsetsDidChange(NEW)
- viewWillLayoutSubviews
- viewDidAppear
可以在 viewSafeAreaInsetsDidChange 后,设置 Safe Area
if #available(iOS 11.0, *) { self.additionalSafeAreaInsets = UIEdgeInsetsMake(10, 0, 0, 34)}
Xcode9 适配 WKWebViewJavascriptBridge
// 原贴地址:https://github.com/marcuswestin/WebViewJavascriptBridge/issues/278- (void)webView:(WKWebView *)webViewdidFailNavigation:(WKNavigation *)navigation withError:(NSError *)error { // …… // Xcode 升级到9后 WKWebViewJavascriptBridge.m 中有个 bug // 需要在"decisionHandler(WKNavigationActionPolicyCancel);"后加上 return,否则崩溃。 // 不升级 Xcode 的话,没问题。 decisionHandler(WKNavigationActionPolicyCancel); return;}
与安全区域无关的tableView内容下移问题
如果tableView的style为UITableViewStyleGrouped类型,默认tableView开头和结尾是有间距的,不需要这个间距的话,可以通过实现heightForHeaderInSection方法(返回一个较小值:0.1)和viewForHeaderInSection(返回一个view)来去除头部的留白,底部同理。
iOS 11上发生tableView顶部有留白,原因是代码中只实现了heightForHeaderInSection方法,而没有实现viewForHeaderInSection方法。那样写是不规范的,只实现高度,而没有实现view,但代码这样写在iOS 11之前是没有问题的,iOS 11之后应该是由于开启了估算行高机制引起了bug。添加上viewForHeaderInSection方法后,问题就解决了。或者添加以下代码关闭估算行高,问题也得到解决。
self.tableView.estimatedRowHeight = 0;self.tableView.estimatedSectionHeaderHeight = 0;self.tableView.estimatedSectionFooterHeight = 0;
参考 https://cloud.tencent.com/community/article/322940
http://blog.csdn.net/chenyblog/article/details/77987751
- iOS-适配iPhoneX相关
- iOS 11 & iPhoneX 适配
- iPhoneX 适配
- iPhoneX适配
- 适配iPhoneX
- iPhoneX 适配
- iphonex适配
- iphonex适配
- iPhoneX适配
- 适配iphonex和ios11的相关问题总结
- iOS调试——适配iOS11,iPhoneX问题及解决办法
- 适配iPhoneX和Xcode9
- ReactNative 适配iPhoneX
- ReactNative 适配iPhoneX
- ios11以及iphonex适配
- iPhoneX
- 适配iOS 11及iPhoneX iOS 11下tableView内容下移的问题
- iOS11/iPhoneX相关适配问题
- Darwin之接收rtsp客户端数据(RTSPRequestStream)
- LC- Merge Two Binary Trees
- windows系统下,实用cmd启动你的应用程序,还你一个干净的桌面
- 《深入理解java虚拟机》-第3章
- angular.js自定义指令
- iOS-适配iPhoneX相关
- 734. Sentence Similarity
- 请让我赚点C币
- 凯哥自媒体:自媒体做好这几点,让你轻松成从自媒体赚钱!
- android canvas
- CloudSim Network源码概述(持续更新...)
- NIO+Netty5各种RPC架构实战演练
- mutex 和 semaphore
- 怎么使用Vegas制作霓虹灯效果?