iOS 26适配要点

  1. ✅ 新增 @Observable Object 支持
    • UIKit 现已支持 @Observable 类型。
    • 当数据变化时,视图可以自动更新,无需手动调用 setNeedsLayout() 或 setNeedsDisplay()。
    • 使用前提:
    • UI 更新代码需放置在 layoutSubviews() 或 viewWillLayoutSubviews() 中。
    • Info.plist 中需添加字段:
<key>UIObservationTrackingEnabled</key>
<true/>

支持系统版本:iOS 18 及以上

  1. 🔄 新增 updateProperties() 方法
    • UIViewController 和 UIView 均新增 updateProperties() 方法。
    • 提供一种轻量级 UI 更新方式,不会触发完整布局(不会调用 layoutSubviews() / viewWillLayoutSubviews())。

常见使用场景:
• 更改标签文字、徽章内容
• 显示或隐藏视图
• 不涉及移动或尺寸变更的更新

使用方法:
• 主动调用 setNeedsUpdateProperties() 来触发更新
• 可自动追踪 @Observable 数据源

  1. 🖼 SF Symbols 7 动画增强
    • UIImage 使用 SF Symbols 7 可实现更流畅、更实用的 UI 动画。

  2. 🎞 新动画选项:flushUpdates
    • UIView 动画新增 flushUpdates 选项。
    • 可自动根据视图数据或约束的更改添加动画,无需调用 layoutIfNeeded()。

  3. 🔐 通知使用更安全
    • 不再强依赖 userInfo 携带数据,通知传参更加安全简洁。

  4. 🍎 iPadOS 三栏布局支持
    • UISplitViewController 支持三列布局:

let splitViewController = UISplitViewController(style: .tripleColumn)
splitViewController.setViewController(MasterViewController(), for: .primary)        // 主列表
splitViewController.setViewController(DetailsViewController(), for: .supplementary) // 项目详情
splitViewController.setViewController(InspectorViewController(), for: .secondary)   // 附加信息
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容