iOS11 和 iPhone X 的适配

news/2025/3/15 18:49:01/

一、首页进行iOS11系统的适配。

1.我手中的 iPhone6s更新到了11,发现UITableView 和 UICollectionView 的 页面页脚变宽了。原因是因为 iOS11 默认开启了 self-Sizing, 我们可以通过实现estimatedRowHeight相关的属性来展示动态的内容,实现了estimatedRowHeight属性后,得到的初始contenSize是个估算值,是通过estimatedRowHeight x cell的个数得到的,并不是最终的contenSize,tableView不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell个数再加上几个,滑动时,tableView不停地得到新的cell,更新自己的contenSize,在滑到最后的时候,会得到正确的contenSize。

self-Sizing在iOS11下是默认开启的,Headers, footers, and cells都默认开启Self-Sizing,所有estimated 高度默认值从iOS11之前的 0 改变为UITableViewAutomaticDimension

由于我们的项目中并没有使用estimateRowHeight 属性,所以页面显示有点问题了。可以使用

self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
关闭 Self_Sizing,由于项目中使用过多,导致改起来比较麻烦,我写了一个 UITableView的分类

+ (void)load {static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{[self mmhSwizzleMethod:@selector(reloadData) withMethod:@selector(mmh_reloadData) error:nil];});
}- (void)mmh_reloadData {self.estimatedRowHeight= 0;self.estimatedSectionHeaderHeight = 0;self.estimatedSectionFooterHeight = 0;if (@available(iOS 11.0, *)) {self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;}[self mmh_reloadData];
}

2.第一步完成之后,页面基本正确了,但是发现导航条还是会偏差个10像素。原因是 iOS11,新增一个属性 contentInsetAdjustmentBehavior
默认值是 automatic ,用来设置 新增的另一个属性 adjustedContentInset
的行为。
这里写图片描述

我们把默认值改为 never 不计算内边距。就可以了。

至此,我的iPhone6s显示没有问题了。我用模拟器在 iPhone X上跑了下, 发现 导航条和底部tab都有问题。

二、 iPhone X的适配

这里写图片描述

由于多了一种尺寸, 启动图就要多一张了,选中 LaunchImage,

这里写图片描述

勾选 iOS 8.0 and later
导入 1125 * 2436 的启动图。再次运行模拟器,就可全屏显示了。 由于我们的app,是自定义的导航条,iPhone X上 电池条由20 变成了 44 ,所以要进行适配。 做完这一步,页面显示基本没问题了


http://www.ppmy.cn/news/238129.html

相关文章

802.1X认证

NAC(Network Admission Control)称为网络接入控制,是一种“端到端”的安全结构,包括802.1X认证、MAC认证与Portal认证。 NAC安全构架包括三个关键组件:NAC终端、网络准入设备和准入服务器。 802.1X协议是一种基于端口…

a11c语言是什么意思,OPPO A11用的充电接口是Type-C的吗

众所周知,OPPO A系列的产品一直以价格优惠、性能良好等得到众多人的青睐。OPPO A系列家族新成员A11x发布以来,热度不断,得到了众多网友的关注,很多不了解的朋友都很关注这款手机的充电口是什么类型,相机像素多&#xf…

802.11ax分析1---IEEE 802.11ax和IEEE 802.11ac性能对比

本文源自Adian Fatvhur Rochim作者的Performance comparison of wireless protocol IEEE 802.11ax vs 802.11ac论文,我在这里进行了翻译整理。因为自己现在在学习Wifi6,所以进行整理!如有错误或理解不到的地方,请多多谅解&#xf…

【数字图像处理】-- 弄懂等距变换(刚性变换)、相似变换、仿射变换、透视变换(投影变换)

目录 概述(Introduction)等距变换(Euclidean Transformation)平移变换(Translation Transformation)旋转变换(Rotation Transformation)等距变换(Euclidean Transformati…

x11苹果_Apple中国 - Mac OS X - X11

早在 Mac OS X 推出之前,开发者们在UNIX操作系统中要想开发具有图形界面的应用程序,其唯一的环境就是使用 X Window 系统,通常称为 X11。针对 Mac OS X 环境的 X11 让UNIX 用户可以同时运行数千种 X11 应用程序和其他 Mac OS X 应用程序。 海…

802.1x和MAC认证

(自看用) 关于准入认证 准入认证有三种:802.1x、MAC认证以及Portal认证。下面是三种认证方式的优缺点: 802.1x 优点:安全性高。缺点:部署不灵活,需要安装客户端。 MAC 优点:不需要安装客户端。 缺点:等级MAC地址…

图像仿射变换原理2:矩阵变换、线性变换和图像线性变换矩阵

☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 仿射变换博文传送门(带星号的为付费专栏文章): *图像仿射变换原理1:齐次坐标来龙去脉详解*图像仿射变换原理2:矩阵变换、线性变换和图像线性变换矩阵*图像仿射变换原理3:仿射变换类型及变换矩阵详解*…

1、计算机图形学——基础变换矩阵

向量叉乘与叉乘矩阵 向量叉乘 右手点赞,a x b,4个握住时手指反方向经过b,顺着a正方向指出,拇指指向为 a与b 的叉积 a、b分别为三维向量 a叉乘b一般定义为 可是这只是一个符号的定义啊,具体怎么得到代数值呢 关键…