一种受权利保护的数据容器,其中的数据会存储在 keychain 中。 配合 LARight 进行数据的存取,存取数据时需要经过用户授权。 需要导入LocalAuthentication模块。 import LocalAuthentication import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } overr
在 iOS 15 中 Apple 推出了 UISheetPresentationController,通过它可以控制 Modal 出来的 UIViewController 的显示大小,且可以通过手势在不同大小之间进行切换。在 iOS 16 中,Modal 出来的 UIViewController 可以自定义显示的大小。
水平方向支持从左到右与从右到左。 支持垂直方向,也分为从上到下与从下到上。 可以设置指示器与当前页的图片。 import UIKit class ViewController: UIViewController { lazy var pageControl: UIPageControl = { let pageControl = UIPageControl(frame: CGRect(x: 0, y: 0, width: 200, height: 500)) pag
iOS 16 中通过 UIPasteboard 获取剪贴板中的内容时,系统会弹出对话框提醒用户是否允许粘贴。如果不想显示该对话框,建议使用新增的 UIPasteControl 控件来读取剪贴板的内容。
介绍 一种显示在锁屏界面的特殊 Widget,但官方强调 Live Activity 与 Widget 并不完全相等,因为二者使用不同的机制进行更新。 可以通过 ActivityKit 来配置、启动、更新与终止 Live Activity,也可以通过远程通知更新 Live Activity,但二者在更新时的动态数据大小均不能超过 4 KB。 Live Activity 在锁屏上最多只能停留 12 小时,超过时间会自动停止运行。 开启 Live Activity 后,App 可以与 DynamicIslan
增加了类型为 UINavigationItem.ItemStyle 的属性style用于描述 UINavigationItem 在 UINavigationBar 上的布局,共有 3 种样式:navigator(默认样式),browser(浏览器样式)与editor(编辑器样式)。 // Created by YungFan import UIKit class ViewController: UIViewController { override func viewDidLoad() {
iOS 16 中新增的菜单交互,用于取代 UIMenuController 与 UIMenuItem。 目前 UITextField 与 UITextView 已经默认支持。 // Created by YungFan import UIKit class ViewController: UIViewController { lazy var textField: UITextField = { let textField = UITextField(frame: CGRect(
iOS 16 中新增的查找交互,用于文本内容的查找与替换。 它会弹出一个查找面板,输入需要搜索的关键字即可进行查找与替换操作。 UITextView、WKWebView 与 PDFView 已经默认支持,但需要将其isFindInteractionEnabled属性设置为true。 // Created by YungFan import UIKit class ViewController: UIViewController { lazy var textView: UITextView =
label = UILabel(frame: CGRect(x: 10, y: 100, width: 360, height: 40)) label.text = "Xcode14 and iOS16 label = UILabel(frame: CGRect(x: 10, y: 150, width: 360, height: 40)) label.text = "Xcode14 and iOS16 label = UILabel(frame: CGRect(x: 10, y: 200, width: 360, height: 40)) label.text = "Xcode14 and iOS16 label = UILabel(frame: CGRect(x: 10, y: 250, width: 360, height: 40)) label.text = "Xcode14 and iOS16
Session 网页版: https://developer.apple.com/wwdc22/sessions/
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 2、无法打开升级前编译的App 解决办法:打开调试手机-设置-隐私与安全-开发者模式-开启开发者模式(需要重启手机 config| config.build_settings['CODE_SIGN_IDENTITY'] = '' end end end end 4、iOS16
可以直接通过 URL 的属性获取沙盒路径的 URL,不需要再借助于FileManager.default.url。 URL 的appendingPathComponent()方法即将被废弃,建议使用新方法append(path:directoryHint:)与appending(path:directoryHint:)。 import UIKit class ViewController: UIViewController { override func viewDidLoad() {
SF Symbols 中增加了新的类别 Variable,其中的图标支持可变渲染。 UIImage 相应地增加了新的构造函数支持可变渲染。 import Combine import UIKit class ViewController: UIViewController { // 可变色度 lazy var variable: Double = 0 { didSet { // 新的构造函数,支持可变渲染 let image
func viewDidLoad() { super.viewDidLoad() let name = UIDevice.current.name // iOS16 之前:XXX iPhone 13 Pro Max // iOS16之后:iPhone 13 Pro Max,不再包含用户信息 print(name) } } 不再支持通过
介绍 UICalendarView 是 iOS 16 中新增的视图,用于显示日历并支持同时选择日历中的一个或多个日期。 只能显示年月日,无法显示时分秒,如果需要时分秒建议继续使用 UIDatePicker。 案例 // Created by YungFan import UIKit class ViewController: UIViewController { // 创建UICalendarView lazy var calendarView: UICalendarView = {
UIMenu增加了属性preferredElementSize用于设置菜单显示时内部元素的尺寸,共有 3 种尺寸可选,分别为small、medium与large。
iOS_适配 iOS16 转屏 问题1:iOS 16 屏幕旋转报错:[Orientation] BUG IN CLIENT OF UIKIT: Setting UIDevice.orientation Please use UIWindowScene.requestGeometryUpdate(_:) 解决:iOS16 UIDevice 不再支持 setValue 方法,使用 UIWindowScene 解决:iOS16 新增:setNeedsUpdateOfSupportedInterfaceOrientations方法,用于通知 UIViewController 支持的屏幕方向有更新。
URLSession 建议通过连接迁移来优化网络切换场景下的 TCP 连接重建,降低网络的延迟。 import UIKit class ViewController: UIViewController { lazy var session: URLSession = { let configuration = URLSessionConfiguration.default // MultipathServiceType是一个枚举类型,App可以采用不同的策略来利用这
Apple 引入了新的结构体 UIFont.Width,这代表了一种新的宽度样式。
iOS 16 真机调试时需要在设备的设置 —> 隐私与安全 —> 开发者模式中打开开发者模式。新增 UICalendarView,可以显示日期并支持单选与多选日期。新增 UIPasteControl 用于读取剪贴板中的内容,否则跨 App 读取时会弹出对话框让用户进行选择是否同意。新增一个交互 UIEditMenuInteraction,用于取代 UIMenuController 与 UIMenuItem。新增一个交互 UIFindInteraction 用于文本内容查找与替换。新增 LARightStor