iOS17适配指南-新版

文章目录

    • 一、iOS17适配点
    • 二、具体代码

一、iOS17适配点

  • UIView与UIViewController。可以设置数据为空时的占位视图,增加SymbolAnimations,通过addSymbolEffect()与removeSymbolEffect()方法,可以实现SF Symbols图标的添加与移除动画。
  • UIPageControl。增加了类型为UIPageControlTimerProgress的参数progress,可根据指定的时间自动切换。
  • UICollectionViewCompositionalLayout。中的NSCollectionLayoutSize增加了一个新的描述方法uniformAcrossSibling(),可根据内容自适应布局。
  • UIMenu。增加了新的显示模式displayAsPalette。
  • 弹簧动画。增加了新的专属API。
  • Siri。增加了个性化电话(彩铃)、实时语音信箱、FaceTime视频留言、充电侧放待机显示、NameDrop、有意分享、AirDrop远距离网络传输、更准确的输入自动更正、心里健康和视力健康评估等功能。

二、具体代码

  • UIView与UIViewController适配
    在UIViewController中,可以使用viewWillAppear()和viewDidAppear()方法来添加占位视图,例如:
override func viewWillAppear(_ animated: Bool) {super.viewWillAppear(animated)// 在此处添加占位视图self.view.addSubview(placeholderView)
}override func viewDidAppear(_ animated: Bool) {super.viewDidAppear(animated)// 在此处移除占位视图placeholderView.removeFromSuperview()
}
  • UIPageControl适配
    在UIPageControl中,可以使用type属性来设置类型为UIPageControlTimerProgress,例如:
let pageControl = UIPageControl()
pageControl.type = .timerProgress
pageControl.currentPageIndicatorTintColor = .white
pageControl.pageIndicatorTintColor = .gray
  • UICollectionViewCompositionalLayout适配
    在UICollectionViewCompositionalLayout中,可以使用NSCollectionLayoutSize的uniformAcrossSibling()方法来描述内容自适应布局,例如:
let size = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1))
size.uniformAcrossSibling() // 根据内容自适应布局
let item = NSCollectionLayoutItem(layoutSize: size)
let group = NSCollectionLayoutGroup.horizontalGroup(with: item.layoutSize) //水平排列group
collectionViewCompositionalLayout.section(by: 0).contentLayout = group.layout
  • iOS 17中增加了新的弹簧动画API,可以使用以下代码实现弹簧动画效果:
// 创建弹簧动画
let springAnimation = UIViewPropertyAnimator(duration: 1, dampingRatio: 0.5) {// 动画操作self.view.transform = CGAffineTransform(scaleX: 1.2, y: 1.2)
}// 启动弹簧动画
springAnimation.startAnimation(nil)

其中,UIViewPropertyAnimator是弹簧动画的专属API,可以用于创建弹簧动画。在创建弹簧动画时,需要指定动画的持续时间和阻尼比等参数。动画操作可以根据需求而定,例如可以使用transform属性来改变视图的尺寸、位置等属性。启动弹簧动画时,需要调用startAnimation()方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/86113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KT142C语音芯片flash型用户如何更新固件的说明_V2

目录 一、简介 2.1 让芯片进入PC模式 2.2 双击提供的exe程序即可 一、简介 正常的情况下,用户肯定是不需要更新固件的,因为芯片出厂默认就烧录了对应的程序固件,但是有客户可能需要小修小改,或者订制一下某些功能&#xff0c…

【业务功能114】微服务-springcloud-springboot-Kubernetes集群-k8s集群-KubeSphere发布应用WordPress

KubeSphere应用发布WordPress 一、WordPress 简介 WordPress(使用 PHP 语言编写)是免费、开源的内容管理系统,用户可以使用 WordPress 搭建自己的网站,大多数博客网站都是基于它实现。完整的 WordPress 应用程序包括以下 Kubernetes 对象&a…

Linux设备驱动之Camera驱动

Linux设备驱动之Camera驱动 Camera,相机,平常手机使用较多,但是手机的相机怎么进行拍照的,硬件和软件,都是如何配合拍摄到图像的,下面大家一起来了解一下。 基础知识 在介绍具体Camera框架前&#xff0c…

Linux——进程

目录 一、基本概念 二、描述进程-PCB (一)task_struct-PCB的一种 (二)task_ struct内容分类 三、查看进程 (一)利用ps命令 (二) 通过 /proc 系统文件夹查看 (三…

c 各种例子

1. struct{ int code; float cost; }item,*ptrst; ptrst&item; prtst->code3451 // ptrst->codeitem.code(*ptrst).code 结构与union 的运算符相同,不同的是union 在同一时间内只能存储成员中的一种,其他的成员不真实。 2. c的修饰符声…

停车场系统源码

源码下载地址(小程序开源地址):停车场系统小程序,新能源电动车充电系统,智慧社区物业人脸门禁小程序: 【涵盖内容】:城市智慧停车系统,汽车新能源充电,两轮电动车充电,物…

zemaxMIF曲线图

调制传递函数( Modulation Transfer Function,MTF )是用来形容光学系统成像质量的重要指标。 通过对光学系统像空间进行傅里叶变换,可以得到一张分析图表,来描述像面上对比度和空间频率之间的对应关系。 对比度&…

C/C++统计满足条件的4位数个数 2023年5月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C统计满足条件的4位数个数 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C统计满足条件的4位数个数 2019年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定若干…

numpy 和 tensorflow 中的各种乘法(点乘和矩阵乘)

嗨喽,大家好呀~这里是爱看美女的茜茜呐 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可 点乘和矩阵乘…

【深度学习实验】前馈神经网络(三):自定义多层感知机(激活函数logistic、线性层算Linear)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 构建数据集 2. 激活函数logistic 3. 线性层算子 Linear 4. 两层的前馈神经网络MLP 5. 模型训练 一、实验介绍 本实验实现了一个简单的两层前馈神经网络 激活函数…

Linux 链表示例 LIST_INIT LIST_INSERT_HEAD

list(3) — Linux manual page 用Visual Studio 2022创建CMake项目 * CmakeLists.txt # CMakeList.txt : Top-level CMake project file, do global configuration # and include sub-projects here. # cmake_minimum_required (VERSION 3.12)project ("llist")# I…

【React】React概念、特点和Jsx基础语法

React是什么? React 是一个用于构建用户界面的 JavaScript 库。 是一个将数据渲染为 HTML 视图的开源 JS 库它遵循基于组件的方法,有助于构建可重用的 UI 组件它用于开发复杂的交互式的 web 和移动 UI React有什么特点 使用虚拟 DOM 而不是真正的 DO…

云原生Kubernetes:K8S存储卷

目录 一、理论 1.存储卷 2.emptyDir 存储卷 3.hostPath卷 4.NFS共享存储 5.PVC 和 PV 6.静态创建PV 7.动态创建PV 二、实验 1.emptyDir 存储卷 2.hostPath卷 3.NFS共享存储 4.静态创建PV 5.动态创建PV 三、问题 1.生成pod一直pending 2.shoumount -e未显示共享…

YOLOv5如何训练自己的数据集

文章目录 前言1、数据标注说明2、定义自己模型文件3、训练模型4、参考文献 前言 本文主要介绍如何利用YOLOv5训练自己的数据集 1、数据标注说明 以生活垃圾数据集为例子 生活垃圾数据集(YOLO版)点击这里直接下载本文生活垃圾数据集 生活垃圾数据集组成&…

CTF 全讲解:[SWPUCTF 2021 新生赛]jicao

文章目录 参考环境题目index.phphighlight_file()include()多次调用,多次执行单次调用,单次执行 $_POST超全局变量HackBarHackBar 插件的获取 $_POST打开 HackBar 插件通过 HackBar 插件发起 POST 请求 GET 请求查询字符串超全局变量 $_GET JSONJSON 数据…

Android 滑动事件消费监控,Debug 环境下通用思路

Android Debug 环境下滑动事件消费监控通用思路 背景 Android 开发中,经常会遇到滑动事件冲突。在一些简单的场景下,我们如果能够知道是那个 View 拦截了事件,那我们能够很容易得解决。解决方法通常就是内部拦截法或者外部拦截法。ViewPage…

【数据结构】七大排序算法详解

目录 ♫什么是排序 ♪排序的概念 ♪排序的稳定性 ♪排序的分类 ♪常见的排序算法 ♫直接插入排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫希尔排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫直接选择排序 ♪基本思想 ♪算法…

【日常业务开发】Java实现异步编程

【日常业务开发】Java实现异步编程 Java实现异步编程什么是异步异步的八种实现方式异步编程线程异步Future异步CompletableFuture实现异步Spring的Async异步Spring ApplicationEvent事件实现异步消息队列ThreadUtil异步工具类Guava异步 CompletableFuture异步编排工具类创建异步…

unity自己对象池的使用

unity出了自己的对象池 这里记录一下用法 命名空间就是这个 一般有两种用法,第一种是在using里面获取,脱离这个域就释放。第二种是在Get和Release配合使用 // This version will only be returned to the pool if we call Release on it.//只有使用Re…

Android进阶之路 - 盈利、亏损金额格式化

在金融类型的app中,关于金额、数字都相对敏感和常见一些,在此仅记录我在金融行业期间学到的皮毛,如后续遇到新的场景也会加入该篇 该篇大多采用 Kotlin 扩展函数的方式进行记录,尽可能熟悉 Kotlin 基础知识 兄弟 Blog StringUti…