View in English

  • Apple 开发者
    • 入门汇总

    探索“入门汇总”

    • 概览
    • 学习
    • Apple Developer Program

    及时了解最新动态

    • 最新动态
    • 开发者你好
    • 平台

    探索“平台”

    • Apple 平台
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    • App Store

    精选

    • 设计
    • 分发
    • 游戏
    • 配件
    • 网页
    • Home
    • CarPlay 车载
    • 技术

    探索“技术”

    • 概览
    • Xcode
    • Swift
    • SwiftUI

    精选

    • 辅助功能
    • App Intents
    • Apple 智能
    • 游戏
    • 机器学习与 AI
    • 安全性
    • Xcode Cloud
    • 社区

    探索“社区”

    • 概览
    • “与 Apple 会面交流”活动
    • 社区主导的活动
    • 开发者论坛
    • 开源

    精选

    • WWDC
    • Swift Student Challenge
    • 开发者故事
    • App Store 大奖
    • Apple 设计大奖
    • Apple Developer Centers
    • 文档

    探索“文档”

    • 文档库
    • 技术概述
    • 示例代码
    • 《人机界面指南》
    • 视频

    发布说明

    • 精选更新
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • Apple tvOS
    • Xcode
    • 下载

    探索“下载”

    • 所有下载
    • 操作系统
    • 应用程序
    • 设计资源

    精选

    • Xcode
    • TestFlight
    • 字体
    • SF Symbols
    • Icon Composer
    • 支持

    探索“支持”

    • 概览
    • 帮助指南
    • 开发者论坛
    • “反馈助理”
    • 联系我们

    精选

    • 《开发者账户帮助》
    • 《App 审核指南》
    • 《App Store Connect 帮助》
    • 即将实行的要求
    • 协议和准则
    • 系统状态
  • 快速链接

    • 活动
    • 新闻
    • 论坛
    • 示例代码
    • 视频
 

视频

打开菜单 关闭菜单
  • 专题
  • 所有视频
  • 关于

更多视频

  • 简介
  • 概要
  • 代码
  • 针对动态字体准备好你的 Apple tvOS App

    借助动态字体,用户能够选择最适合自己的文本大小,以便轻松自在地阅读,并与你的 App 进行交互。你将了解如何通过一些实用技巧来实现字体缩放并针对大字号内容调整布局,从而让你的 App 为 tvOS 上的动态字体做好准备。你还将探索如何优化以媒体为中心的界面 (如网格和轮播),确保每一位需要调整文本大小的用户都能获得出色的体验。

    章节

    • 0:01 - Introduction
    • 2:46 - Identify common issues
    • 6:13 - Adapt your layout

    资源

    • Applying custom fonts to text
    • Scaling fonts automatically
      • 高清视频
      • 标清视频

    相关视频

    WWDC24

    • 动态字体体验入门
  • 搜索此视频…
    • 4:58 - Adopt standard text styles

      // Adopt standard text styles
      
      VStack(spacing: 20) {
        Text("Signup information")
          .font(.caption.bold())
          .lineLimit(1)
          .foregroundStyle(.secondary)
          .frame(width: 300, alignment: .leading)
        HStack(alignment: .top, spacing: 40) { 
            //* ... *//
        }
      }
    • 5:10 - Use flexible constraints

      // Adopt standard text styles
      
      VStack(spacing: 20) {
        Text("Signup information")
          .font(.caption.bold())
          .lineLimit(1)
          .foregroundStyle(.secondary)
          .frame(maxWidth: .infinity, alignment: .leading)
        HStack(alignment: .top, spacing: 40) { 
            /* ... */
        }
      }
    • 5:55 - Dynamic Type with text styles in UIKit

      // Hard coded text size in UIKit
      
      titleLabel.font = UIFont.boldSystemFont(ofSize: 28)
      
      // Dynamic Type with text styles in UIKit
      
      titleLabel.font = UIFont.preferredFont(forTextStyle: .headline)
      titleLabel.adjustsFontForContentSizeCategory = true
    • 7:09 - Adapt layout in response to dynamic type

      // A view that shows a collection of movie posters
      
      struct MovieShelf: View {
        @Environment(\.dynamicTypeSize) private var dynamicTypeSize
        var body: some View {
          ScrollView(.horizontal) {
            LazyHStack(spacing: 40) {
              ForEach(Asset.allCases) { asset in
                Button { 
                  /* ... */
                } label: {
                  asset.portraitImage
                  Text(asset.title)
                }
                .containerRelativeFrame(
                  .horizontal,
                  count: dynamicTypeSize.isAccessibilitySize ? 4 : 6,
                  spacing: 40)
              }
            }
          }
        }
      }
    • 8:07 - Provide a conditional layout for when larger sizes are turned on

      // A view that shows content in a card
      
      struct CardContentView: View {
        @Environment(\.dynamicTypeSize) private var dynamicTypeSize
        var asset: Asset
      
        var body: some View {
          let layout = dynamicTypeSize.isAccessibilitySize ?
            AnyLayout(VStackLayout(alignment: .leading, spacing: 10)) :
            AnyLayout(HStackLayout(alignment: .top, spacing: 10))
          layout {
            /* ... */
          }
        }
      }
    • 8:31 - UIKit adaptive layout that responds to content size changes

      // UIKit adaptive layout that responds to content size changes
      
      class AdaptiveLayoutViewController: UIViewController {
        let stackView = UIStackView()
        
        override func viewDidLoad() {
          super.viewDidLoad()
          updateLayout()
      
          let sizeTraits: [UITrait] = [UITraitPreferredContentSizeCategory.self]
          registerForTraitChanges(sizeTraits, action: #selector(updateLayout))
        }
      
        private func updateLayout() {
          if traitCollection.preferredContentSizeCategory.isAccessibilityCategory {
            stackView.axis = .vertical
          } else {
            stackView.axis = .horizontal
          }
        }
      
      }
    • 0:01 - Introduction
    • Large Text support is now available system-wide on tvOS 27, allowing apps to automatically scale text to match someone's needs and preferences. By supporting Dynamic Type, your app can adapt its layout and display its accessibility support in its Accessibility Nutrition Labels.

    • 2:46 - Identify common issues
    • When accommodating larger text, avoid fixed font sizes and rigid constraints that prevent text from scaling and cause truncation or clipping. Ensure all UI elements are flexible and responsive rather than relying on hardcoded values that break layouts at larger sizes.

    • 6:13 - Adapt your layout
    • Find and replace hardcoded sizes with standard text styles to allow interfaces to grow. In cases where standard scaling isn't enough, adapt your view's layout dynamically—such as reducing the number of columns in a grid—by checking the current `dynamicTypeSize` environment value.

Developer Footer

  • 视频
  • WWDC26
  • 针对动态字体准备好你的 Apple tvOS App
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • Apple 智能
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习与 AI
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • Mini Apps Partner Program
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    阅读最近新闻。
    获取 Apple Developer App。
    版权所有 © 2026 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则