Xcode 15新特性与iOS 17适配要点

news/2024/7/20 20:59:43 标签: ios, xcode, macos

Xcode 15新特性

在 WWDC 23 上 Apple 推出了 Xcode 15,相比较 Xcode 14,它有如下的变化。

项目

  • 安装包的大小继续减小,安装速度继续提升,因为 iOS 的 Components 也需要动态下载安装,否则提示iOS 17.0 Not Install,平台不同提示略有不同。

  • 主界面的菜单图标与名称发生变化。

  • 创建 iOS 项目时,增加了Storage选项,不再有Use Core Data选项。

  • 导航区的第三个菜单 Symbol navigator 替换为 Bookmark navigator

  • 调试区的菜单发生变化,并且输出的内容随着不同的级别拥有不同的背景色。

  • Archive 时的 Distribute App 界面发生变化。

功能

  • Assets 中的创建的Image SetColor Set可以生成类型安全的标识符,在程序中可以.标识符的形式访问。

struct ContentView: View {
    var body: some View {
        VStack {
            Color(.colorSet) // Color Set
            
            Image(.imageSet) // Image Set,只是新建不行,还必须有图片
        }
        .padding()
    }
}
  • UIKit、AppKit 与 WidgetKit 均可以通过宏(macro)#Preview实现类似 SwiftUI 的实时预览。

// UIKit
#Preview {
    UIKit 预览内容,可以是 UIView 或者 UIViewController
}

// AppKit
#Preview {
    AppKit 预览内容,可以是 NSView 或者 NSViewController
}

// WidgetKit
#Preview(as: 预览尺寸) {
    Widget
} timeline: {
    TimelineEntry
}
  • 增加 Documentation Preview,文档也支持预览。

  • 代码支持添加 Bookmark,在某一行代码或者选中多行代码,然后右击,可以看到相应的添加菜单。可以在 Bookmark navigator 中查看添加的所有 Bookmark。

  • 条件编译代码随着选择的条件会高亮显示对应条件的编译代码。

  • 右击菜单 Show Quick Help 可以显示更加丰富的文档内容。

  • 编辑代码时 Quick Actions 可以快捷访问对应内容的所有菜单,快捷键command + shift + A

  • 遇到多参数的方法时,可以通过键盘方向键 —> 显示所有可能的参数组合。

  • 编辑完多参数的方法后,如果觉得格式不适合阅读,可以通过右击 Refactor —> Format to Multipl Lines 进行格式化。

  • 代码提示功能进一步增强。

iOS 17适配要点

同样在 WWDC 23 上 Apple 发布了 iOS 17,推出了很多新的内容。

  1. 增加了 UIContentUnavailableView,UIView 与 UIViewController 都可以设置数据为空时的占位视图。

  2. UIFont.TextStyle 增加了新的超大字体样式extraLargeTitleextraLargeTitle2

  3. UIImageView 支持显示 HDR 图片。

  4. UIImageView 增加了 Symbol Animations,通过addSymbolEffect()removeSymbolEffect()方法可以实现 SF Symbols 图标的添加与移除动画。

  5. UIButton 也增加了 Symbol Animations,使得按钮中使用的 SF Symbols 图标可以呈现动画。

  6. UITextField 增加了新的birthdatecreditCard相关的 textContentType。

  7. UIPageControl 增加了类型为 UIPageControlTimerProgress 的参数progress,可以根据指定的时间自动切换。

  8. UICollectionView 效率大幅提升。

  9. UICollectionViewCompositionalLayout 中的 NSCollectionLayoutSize 增加了一个新的描述方法uniformAcrossSibling(),可以根据内容自适应布局。

  10. UIMenu 与 UIAction 增加了新的构造方法,可以设置更多内容。

  11. UIMenu 增加了新的显示模式displayAsPalette

  12. UIViewController 增加了新的生命周期函数viewIsAppearing(),调用时机介于viewWillAppear()viewDidAppear()之间,并且兼容到 iOS 13。

  13. 弹簧动画增加了新的专属 API。


http://www.niftyadmin.cn/n/427445.html

相关文章

【王道·操作系统】第三章 内存管理【未完】

一、内存管理 1.1 内存的基础知识 内存可存放数据,程序执行前需要先放到内存中才能被CPU处理——缓和CPU与硬盘之间的速度矛盾内存地址从0开始,每个地址对应一个存储单元 按字节编址:每个存储单元大小为1字节(B),即8个二进制位按…

Spring中Bean的生命 周期与作用域

文章目录 前言Bean的作用域概念Bean作用域类型1. singleton:单例作⽤域2. prototype:原型作⽤域(多例作⽤域)3. request:请求作⽤域4. session:回话作⽤域5. application:全局作⽤域6. websocke…

每日算法总结——回溯算法、 LeetCode 131. 分割回文串

LeetCode 131. 分割回文串 131. 分割回文串 - 力扣(LeetCode) 什么是回溯算法? 回溯算法真的是解决排列问题的一大利器,其实很多时候自己不经意间就写出了回溯算法,但是一直没有一个系统的认识,今天做一…

编译3D渲染引擎Horde3D

Horde3D是Github上一款开源的轻量级3D渲染引擎,同时它还支持多个平台。今天我们准备在Mac平台上交叉编译至Android平台。如果需要同时能编译Sample,那么还需要SDL2库。默认情况下,编译Horde3D时不强制下载SDL2,你可以选择强制下载…

OpenMMLab-AI实战营第二期——5-1.语义分割与MMSegmentation

文章目录 1. 基本概念1.1 案例演示1.2 应用1.3 语义分割概念 2. 语义分割算法2.1 语义分割基本思路2.1.1 按颜色2.1.2 逐像素分类 2.2 深度学习下的语义分割模型2.2.1 全卷积网络2.2.2 Unet2.2.3 上下文信息与PSPNet模型2.2.4 空洞卷积与DeepLab算法2.2.5 总结2.2.6 前言语义分…

window系统:python3 + auto-py-to-exe 打包playwright为exe,内含独立浏览器

auto-py-to-exe的使用参考一下链接: 链接: python—auto-py-to-exe—.py文件打包成.exe文件最全最详细(用不同的类别做教程) 1、使用auto-py-to-exe打包playwright成exe,运行之后运行一直报错:FileNotFoundError: [Wi…

Java-API简析_java.lang.Character类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131178778 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

chatgpt赋能python:Python文件处理入门指南-如何将Python程序转化为文件

Python文件处理入门指南 - 如何将Python程序转化为文件 Python是一门广泛应用于机器学习、数据分析、网络编程等领域的高级编程语言。Python代码简洁易懂,具有良好的可移植性和跨平台性,因此备受程序员们的喜欢。然而,要想让代码得到更广泛的…