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

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。

猜你喜欢

转载自blog.csdn.net/BianHuanShiZhe/article/details/131178801