- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章iPhoneX 各种适配记录笔记(超全面)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
前言 。
与以往的iphone不同,这次iphone x用上了时下流行的全面屏设计,屏幕的分辨率和比例都是苹果首次采用,而且还有个“别致的刘海”,这就需要现有的app为iphone x重新作适配了.
所以iphone x 的到来,惊艳的是果粉,苦逼的是程序猿。今天升级到xcode9.0,运行项目,所谓的全屏 iphone x,but 页面好像也没有全屏,于是根据之前的适配经验,总算初步解决了这个问题,记录如下,以备后需.
app 页面适配适配前 。
适配前 。
问题:app 未全屏显示 。
解决办法 。
launchimage 中添加一个和 iphone x 相关的启动图片 。
* 图片尺寸:1125 * 2436 。
* contents.json 中代码如下 。
1
2
3
4
5
6
7
8
9
|
{
"extent"
:
"full-screen"
,
"idiom"
:
"iphone"
,
"subtype"
:
"2436h"
,
"filename"
:
"1125_2436.png"
,
"minimum-system-version"
:
"11.0"
,
"orientation"
:
"portrait"
,
"scale"
:
"3x"
}
|
适配后 。
页面布局细节 。
safe area 。
动机 。
iphone x 取消了 home键,实现了高屏占比,所以默认 view 的区域是全屏幕 。
屏幕四周有圆角、顶部有“刘海”、底部有手势区域 。
顶部导航栏 。
* 注意:导航栏高度是 44 + 44 。
底部手势区域 。
safe area 如下图 (红色区域) 。
safe area 大小竖屏 。
1
2
3
4
5
|
▿ uiedgeinsets
- top : 44.0
- left : 0.0
- bottom : 34.0
- right : 0.0
|
横屏 。
1
2
3
4
|
- top : 0.0
- left : 44.0
- bottom : 21.0
- right : 44.0
|
自动布局时的注意点 。
但凡和父视图相关的 top 或者 bottom 属性的自动布局,应该参照 safe area。(之前默认是 superview,当然如果产品允许,那就是另一回事了) 。
选择 safe area布局示例如下:
未选择 safe area布局示例如下:
网上有看到有黑iphone x的,说用它没法玩王者荣耀等游戏,理由是可能看不到自己有多少钱或者推塔键和信号键没了,对此估计是多虑了!iphone x 出售之前,游戏厂商肯定会做适配,高屏占比只会提高游戏体验,不会产生那么严重的视觉问题的.
适配前后,效果图示例如下:
xcode9 适配 。
wkwebviewjavascriptbridge 。
1
2
3
4
5
6
7
8
9
10
11
|
// 原贴地址:https://github.com/marcuswestin/webviewjavascriptbridge/issues/278
- (
void
)webview:(wkwebview *)webview
didfailnavigation:(wknavigation *)navigation
witherror:(nserror *)error {
// ……
// xcode 升级到9后 wkwebviewjavascriptbridge.m 中有个 bug
// 需要在"decisionhandler(wknavigationactionpolicycancel);"后加上 return,否则崩溃。
// 不升级 xcode 的话,没问题。
decisionhandler(wknavigationactionpolicycancel);
return
;
}
|
部分页面适配 iphone x 。
底部有按钮的页面 。
适配前 。
其底部约束如下图:
适配后 。
其底部约束如下图:
控制器生命周期之viewsafeareainsetsdidchange 。
可以在 viewsafeareainsetsdidchange 后,设置 safe area 。
1
2
3
|
if
#available(ios 11.0, *) {
self.additionalsafeareainsets = uiedgeinsetsmake(10, 0, 0, 34)
}
|
总结 。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我的支持.
原文链接:http://blog.csdn.net/chenyblog/article/details/77987751 。
最后此篇关于iPhoneX 各种适配记录笔记(超全面)的文章就讲到这里了,如果你想了解更多关于iPhoneX 各种适配记录笔记(超全面)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在C#中,我可以通过base关键字访问基类,在java中,我可以通过super关键字访问它。在delphi中如何做到这一点?假设我有以下代码: type TForm3 = class(TF
在这件事上我已经把头撞到墙上好几次了。所以我希望在正确的方向上得到一点帮助。 我有一张 table ,上面有订单,一张 table 上有火车,一张 table 上有航类,一张 table 上有巴士。每
在 Python 中,假设我有以下代码: class SuperClass(object): def __init__(self, x): self.x = x
我希望这个 subview 扩展到它的父 View 之外,但是父 View 的边框正在切入 subview 。有没有办法防止这种情况? class TheView : UIView { let
我有一个标准的高斯函数,看起来像这样: def gauss_fnc(x, amp, cen, sigma): return amp * np.exp(-(x - cen) ** 2 / (2
例如,我有下一个类,带有有界类型参数: public class ItemContainer { void addItems(List items); } 在另一个带有参数的类中使用: pub
如何将此设置转换为命令? 结果如下: // Manual Compression (see the image above) Compressed Size: 12,647,451 bytes //
请建议在应用继承时如何使用@Wither/@With。 我有一个抽象类Parent和具体的Child。 Child 应该是不可变的。将 @Wither 放在两者上会给我两个错误: 构造函数 Child
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在尝试向服务器(虚拟托管)发出 HTTP2 请求,该服务器根据主机 header 值 (SNI) 提供 SSL 证书。 # conn = hyper.HTTP20Connection('h
我有一个应用程序,必须将大约 1300 万行、大约 10 个平均长度的字符串插入到嵌入式 HSQLDB 中。我一直在调整一些东西(批量大小、单线程/多线程、缓存/非缓存表、MVCC 事务、log_si
我想定义一个函数f(x, t::Type)根据 isa(x, t) 是否执行不同的行为.假设我想调用b1(x)如果是,b2(x)除此以外。 我知道我可以像这样在运行时进行动态检查: function
我正在使用 Hyper-V WMI Provider在 Hyper-V 中导入虚拟机,特别是使用 ImportVirtualSystemEx Msvm_VirtualSystemManagementS
这几个星期以来一直困扰着我,我没有结束对它的研究,因为我目前重载并且它让我落后于第一年的 CS (opengl) 大学类(class),这首先让我研究了这个:如何只用一个 for 循环绘制立方体的所有
我正在我的计算机(操作系统:Windows 8)上开发一个 WP8 应用程序。我需要安装一个 VM 才能拥有 linux。同时我需要使用我的 Windows Phone 模拟器。 我下载了 VMWar
我是一名优秀的程序员,十分优秀!