XCode14 & iOS16 适配

1.不升级电脑系统与 Xcode,调试iOS 16

1、下载iOS16 Support文件

2、放置到Xcode DeviceSupport目录重启Xcode即可/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

2.iOS16手机开启开发者模式

iOS16手机未打开开发者模式时:

1、Xcode 无法选中 iOS16的设备,报错:developer mode disable

解决办法:打开调试手机-设置-隐私与安全-开发者模式-开启开发者模式(需要重启手机)

3.Pod工程中的Bundle target签名报错

方法一:手动选择Pod工程中的Bundle target 签名中的Team,与主工程一致

方法二:在Podfile脚本中设置你的开发者的Team ID

post_install do |installer|

  installer.generated_projects.each do |project|

    project.targets.each do |target|

        target.build_configurations.each do |config|

            config.build_settings["DEVELOPMENT_TEAM"] = "Your Team ID"

        end

    end

  end

end

方法三:在Podfile脚本中设置CODE_SIGN_IDENTITY为空来避免报错

post_install do |installer|

  installer.generated_projects.each do |project|

    project.targets.each do |target|

        target.build_configurations.each do |config|

            config.build_settings['CODE_SIGN_IDENTITY'] = ''

        end

    end

  end

end

4. UICalendarView

新增 UICalendarView,可以显示日期并支持单选与多选日期

5. UIPasteControl

新增 UIPasteControl 用于读取剪贴板中的内容,否则跨 App 读取时会弹出对话框让用户进行选择是否同意

6. UIEditMenuInteraction

新增一个交互 UIEditMenuInteraction,用于取代 UIMenuController 与 UIMenuItem。

7.UIFindInteraction

新增一个交互 UIFindInteraction 用于文本内容查找与替换。

8. LARightStore

LARightStore 用于存储与获取 keychain 中的数据。

9.UIImage

UIImage 增加了新的构造函数用于支持 SF Symbols 最新版中增加的类别 Variable。

10.UIPageControl

UIPageControl 支持垂直显示并可以设置指示器与当前页的图片

11.UITableView , UICollectionView

1.UITableView 与 UICollectionView 在使用 Cell Content Configuration 时支持使用 UIHostingConfiguration 包装 SwiftUI 代码定义 Cell 的内容。

cell.contentConfiguration = UIHostingConfiguration {

    HStack {

        Image(systemName: images[indexPath.row])

            .foregroundStyle(.teal)

        Text(devices[indexPath.row])

            .font(.caption)

            .foregroundStyle(.secondary)

    }

}

2.UITableView 与 UICollectionView 增加了新的selfSizingInvalidation参数,通过它 Cell 具备自动调整大小的能力。

12.UINavigationItem

UINavigationItem 增加了一个属性style用于描述 UINavigationItem 在 UINavigationBar 上的布局;增加了一个属性backAction用于实现当前 UIViewController 的返回按钮事件;增加了一个属性titleMenuProvider用于给当前导航栏的标题添加操作菜单。

13.UISheetPresentationController

UISheetPresentationController 支持自定义显示的 UIViewController 的大小

14.UIMenu 支持设置尺寸,分别为small、medium与large。

let addNewMenu = UIMenu(title: "", preferredElementSize: .small, children: menuActions)

15.隐私权限增强

隐私权限增强,如通过 UIDevice 获取设备名称时,无法获取用户的信息,只能获取设备对应的名称。

16.UIDevice

UIDevice 不再支持通过setValue()方法设置设备的方向,替换为 UIWindowScene 的requestGeometryUpdate()方法。

17. Live Activity

支持 Live Activity,可以理解为一种特殊的锁屏界面显示的 Widget。

18.UIFont

增加了 3 种新的宽度样式:compressed、condensed与expanded,加上默认的standard,目前 UIFont 共有 4 种字体宽度。宽度大小关系为:expanded>standard>condensed>compressed

//  Created by YungFanimportUIKitclassViewController:UIViewController{// 定义4种宽度不同的字体let expanded =UIFont.systemFont(ofSize:27, weight:.bold, width:.expanded)let standard =UIFont.systemFont(ofSize:27, weight:.bold, width:.standard)let condensed =UIFont.systemFont(ofSize:27, weight:.bold, width:.condensed)let compressed =UIFont.systemFont(ofSize:27, weight:.bold, width:.compressed)lazyvar expandedLabel:UILabel={let label =UILabel(frame:CGRect(x:10, y:100, width:360, height:40))

        label.text ="Xcode14 and iOS16"

        label.font = expanded

        return label

    }()lazyvar standardLabel:UILabel={let label =UILabel(frame:CGRect(x:10, y:150, width:360, height:40))

        label.text ="Xcode14 and iOS16"

        label.font = standard

        return label

    }()lazyvar condensedLabel:UILabel={let label =UILabel(frame:CGRect(x:10, y:200, width:360, height:40))

        label.text ="Xcode14 and iOS16"

        label.font = condensed

        return label

    }()lazyvar compressedLabel:UILabel={let label =UILabel(frame:CGRect(x:10, y:250, width:360, height:40))

        label.text ="Xcode14 and iOS16"

        label.font = compressed

        return label

    }()overridefuncviewDidLoad(){super.viewDidLoad()

        view.addSubview(expandedLabel)

        view.addSubview(standardLabel)

        view.addSubview(condensedLabel)

        view.addSubview(compressedLabel)}}

每个更新点的具体变化案例可参考https://www.jianshu.com/nb/49167696

你可能感兴趣的:(XCode14 & iOS16 适配)