View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Code
  • Créez un UIKit app avec le nouveau design

    Mettez à jour votre app UIKit pour tirer pleinement parti du nouveau système de conception. Nous nous pencherons sur les principales modifications apportées aux vues d'onglets, aux vues fractionnées, aux barres, aux présentations, à la recherche et aux commandes, et nous vous montrerons comment utiliser Liquid Glass dans votre interface utilisateur personnalisée. Pour tirer le meilleur parti de cette vidéo, nous vous recommandons de regarder d'abord « Apprenez à connaître le nouveau système de conception » pour obtenir des conseils généraux sur la conception.

    Chapitres

    • 0:00 - Introduction
    • 1:55 - Vues par onglets et vues scindées
    • 7:19 - Navigation et barres d’outils
    • 13:31 - Présentations
    • 15:18 - Recherche
    • 17:24 - Contrôles
    • 19:15 - Éléments personnalisés
    • 25:01 - Étapes suivantes

    Ressources

    • Adopting Liquid Glass
    • Human Interface Guidelines
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC25

    • Découvrez le nouveau système de conception
    • Découvrez Liquid Glass
    • Nouveautés dans UIKit
    • Rendez votre app UIKit plus flexible

    WWDC24

    • Elevate your tab and sidebar experience in iPadOS
    • Enhance your UI animations and transitions
  • Rechercher dans cette vidéo…
    • 2:31 - Minimize tab bar on scroll

      // Minimize tab bar on scroll
      
      tabBarController.tabBarMinimizeBehavior = .onScrollDown
    • 3:08 - Add a bottom accessory

      // Add a bottom accessory
      
      let nowPlayingView = NowPlayingView()
      let accessory = UITabAccessory(contentView: nowPlayingView)
      tabBarController.bottomAccessory = accessory
    • 3:35 - Update the accessory with the tabAccessoryEnvironment trait

      // Update the accessory with the trait
      
      registerForTraitChanges([UITraitTabAccessoryEnvironment.self]) { (view: MiniPlayerView, _) in
          let isInline = view.traitCollection.tabAccessoryEnvironment == .inline
          view.updatePlayerAppearance(inline: isInline)
      }
      
      // Automatic trait tracking with updateProperties()
      override func updateProperties() {
          super.updateProperties()
          let isInline = traitCollection.tabAccessoryEnvironment == .inline
          updatePlayerAppearance(inline: isInline)
      }
    • 5:51 - Extend content under the sidebar

      // Extend content underneath the sidebar
      
      let posterImageView = UIImageView(image: ...)
      
      let extensionView = UIBackgroundExtensionView()
      extensionView.contentView = posterImageView
      view.addSubview(extensionView)
      
      let detailsView = ShowDetailsView()
      view.addSubview(detailsView)
    • 6:51 - Adjust the effect layout

      // Adjust the effect layout
      
      let posterImageView = UIImageView(image: ...)
      
      let extensionView = UIBackgroundExtensionView()
      extensionView.contentView = posterImageView
      extensionView.automaticallyPlacesContentView = false
      view.addSubview(extensionView)
      
      posterImageView.translatesAutoresizingMaskIntoConstraints = false
      NSLayoutConstraint.activate([
          posterImageView.topAnchor.constraint(equalTo: extensionView.topAnchor),
          posterImageView.leadingAnchor.constraint(equalTo: extensionView.safeAreaLayoutGuide.leadingAnchor),
          posterImageView.trailingAnchor.constraint(equalTo: extensionView.safeAreaLayoutGuide.trailingAnchor),
          posterImageView.bottomAnchor.constraint(equalTo: extensionView.safeAreaLayoutGuide.bottomAnchor),
      ])
    • 8:38 - Custom grouping

      // Custom grouping
      
      navigationItem.rightBarButtonItems = [
          doneButton,
          flagButton,
          folderButton,
          infoButton,
          .fixedSpace(0),
          shareButton,
          selectButton
      ]
    • 8:53 - UIBarButtonItem tint color and style

      // Tint color and style
      
      let flagButton = UIBarButtonItem(image: UIImage(systemName: "flag.fill"))
      flagButton.tintColor = .systemOrange
      flagButton.style = .prominent
    • 9:10 - Toolbar with evenly distributed items in a single background

      // Toolbar with evenly distributed items, grouped in a single background.
      
      let flexibleSpace = UIBarButtonItem.flexibleSpace()
      flexibleSpace.hidesSharedBackground = false
      
      toolbarItems = [
         .init(image: UIImage(systemName: "location")),
         flexibleSpace,
         .init(image: UIImage(systemName: "number")),
         flexibleSpace,
         .init(image: UIImage(systemName: "camera")),
         flexibleSpace,
         .init(image: UIImage(systemName: "trash")),
      ]
    • 10:15 - Titles and subtitles

      // Titles and subtitles
      
      navigationItem.title = "Inbox"
      navigationItem.subtitle = "49 Unread"
    • 10:27 - Large subtitle view

      // Titles and subtitles
      
      navigationItem.title = "Inbox"
      navigationItem.largeSubtitleView = filterButton
    • 11:20 - Edge effect for a custom container

      // Edge effect’s custom container
      
      let interaction = UIScrollEdgeElementContainerInteraction()
      interaction.scrollView = contentScrollView
      interaction.edge = .bottom
      
      buttonsContainerView.addInteraction(interaction)
    • 11:48 - Hard edge effect style

      // Hard edge effect style
      
      scrollView.topEdgeEffect.style = .hard
    • 13:55 - Morph popover from its source button

      // Morph popover from its source button
      
      viewController.popoverPresentationController?.sourceItem = barButtonItem
    • 14:07 - Morph sheet from bar button

      // Morph sheet from bar button
      
      viewController.preferredTransition = .zoom { _ in 
           folderBarButtonItem
      }
    • 14:46 - Source item for action sheets

      // Setting source item for action sheets
      
      alertController.popoverPresentationController?.sourceItem = barButtonItem
    • 15:36 - Placing search in the toolbar

      // Place search bar in a toolbar
      
      toolbarItems = [
          navigationItem.searchBarPlacementBarButtonItem,
          .flexibleSpace(),
          addButton
      ]
    • 16:01 - Universally accessible search on iPad

      // Place search at the trailing edge of the navigation bar
      
      navigationItem.searchBarPlacementAllowsExternalIntegration = true
    • 16:47 - Activate the search field when search bar is tapped

      // Activate the search field when search bar is tapped
      
      searchTab.automaticallyActivatesSearch = true
    • 17:03 - Search as a dedicated view

      // Search as a dedicated view
      
      navigationItem.preferredSearchBarPlacement = .integratedCentered
    • 17:52 - Buttons

      // Standard glass
      button.configuration = .glass()
      
      // Prominent glass
      tintedButton.configuration = .prominentGlass()
    • 18:16 - Neutral slider with 5 ticks and a neutral value

      // Neutral slider with 5 ticks and a neutral value
      slider.trackConfiguration = .init(allowsTickValuesOnly: true,
                                        neutralValue: 0.2,
                                        numberOfTicks: 5)
    • 18:59 - Thumbless slider

      // Thumbless slider
      slider.sliderStyle = .thumbless
    • 20:28 - Glass for custom views

      // Adopting glass for custom views
      
      let effectView = UIVisualEffectView()
      addSubview(effectView)
      
      let glassEffect = UIGlassEffect()
      // Animating setting the effect results in a materialize animation
      UIView.animate {
          effectView.effect = glassEffect
      }
    • 20:49 - Custom corner configuration

      // Custom corner configuration
      
      UIView.animate {
          effectView.cornerConfiguration = .fixed(8)
      }
    • 20:54 - Dark mode

      // Adapting to dark mode
      
      UIView.animate {
          view.overrideUserInterfaceStyle = .dark
      }
    • 21:02 - Adding glass to an existing glass container

      // Adding glass to an existing glass container
      
      let container = UIVisualEffectView()
      container.effect = UIGlassEffect()
      
      container.contentView.addSubview(effectView)
    • 21:08 - Container relative corners

      // Container relative corners
      
      UIView.animate {
          effectView.cornerConfiguration = .containerRelative()
          effectView.frame.origin = CGPoint(x: 10, y: 10)
      }
    • 21:23 - Container relative corners, animated

      // Container relative corners
      
      UIView.animate {
          effectView.frame.origin = CGPoint(x: 30, y: 30)
      }
    • 21:30 - Glass adapts based on its size

      // Glass adapts based on its size
      
      UIView.animate {
          view.overrideUserInterfaceStyle = .light
          effectView.bounds.size = CGSize(width: 250, height: 88)
      }
      
      UIView.animate {
          effectView.bounds.size = CGSize(width: 150, height: 44)
      }
    • 21:49 - Adding content to glass views

      // Adding content to glass views
      
      let label = UILabel()
      label.text = "WWDC25"
      label.textColor = .secondaryLabel
      
      effectView.contentView.addSubview(label)
    • 22:15 - Applying tint color to glass

      // Applying tint color to glass
      
      let glassEffect = UIGlassEffect()
      glassEffect.tintColor = .systemBlue
      
      UIView.animate {
          effectView.effect = glassEffect
          label.textColor = .label
      }
    • 22:33 - Using custom colors with glass

      // Using custom colors with glass
      
      let glassEffect = UIGlassEffect()
      glassEffect.tintColor = UIColor(displayP3Red: r,
                                      green: g,
                                      blue: b,
                                      alpha: 1)
      
      UIView.animate {
          effectView.effect = glassEffect
          // Animate out the label
          label.alpha = 0
      }
    • 23:03 - Enabling interactive glass behavior

      // Enabling interactive glass behavior
      
      let glassEffect = UIGlassEffect()
      glassEffect.isInteractive = true
      
      effectView.effect = glassEffect
    • 23:20 - Animating glass out using dematerialize animation

      // Animating glass out using dematerialize animation
      
      UIView.animate {
          effectView.effect = nil
      }
    • 23:52 - Adding glass elements to a container

      // Adding glass elements to a container
      
      let container = UIGlassContainerEffect()
      let containerView = UIVisualEffectView(effect: container)
      
      let glassEffect = UIGlassEffect()
      let view1 = UIVisualEffectView(effect: glassEffect)
      let view2 = UIVisualEffectView(effect: glassEffect)
      
      containerEffectView.contentView.addSubview(view1)
      containerEffectView.contentView.addSubview(view2)
    • 24:12 - Adjusting the container spacing

      // Adjusting the container spacing
      
      let containerEffect = UIGlassContainerEffect()
      containerEffect.spacing = 20
      containerEffectView.effect = containerEffect
    • 24:27 - Merging two glass views

      // Merging two glass views
      
      UIView.animate {
          view1.frame = finalFrame
          view2.frame = finalFrame
      }
    • 24:33 - Dividing glass into multiple views

      // Dividing glass into multiple views
      
      UIView.performWithoutAnimation {
          for view in finalViews {
              containerEffectView.contentView.addSubview(view)
              view.frame = startFrame
          }
      }
      
      UIView.animate {
          for view in finalViews {
              view.frame = finalFrame(for: view)
          }
      }
    • 0:00 - Introduction
    • Découvrez comment intégrer le nouveau langage de conception d’iOS 26 à vos apps. La nouvelle conception, centrée sur le style dynamique et translucide appelé Liquid Glass, met automatiquement à jour l’apparence des apps recompilées avec le dernier SDK. Cette vidéo couvre divers aspects de la nouvelle conception, notamment la nouvelle apparence et le nouveau comportement des vues par onglets, des vues scindées, des barres de navigation, des barres d’outils, etc., qui comportent désormais des éléments Liquid Glass. Elle propose également des conseils sur l’application de Liquid Glass aux éléments d’interface utilisateur personnalisés.

    • 1:55 - Vues par onglets et vues scindées
    • Grâce à leur mise à jour, « UITabBarController » et « UISplitViewController » ont désormais une apparence Liquid Glass moderne. Les barres d’onglets de l’iPhone flottent désormais au-dessus du contenu et peuvent être réduites lors du défilement, pour améliorer la concentration. Vous pouvez personnaliser ce comportement et ajouter une vue accessoire au-dessus de la barre d’onglets, qui s’anime vers le bas lorsqu’elle est réduite. Sur iPad, les barres d’onglets et les barres latérales flottent également dans Liquid Glass. Les apps qui adoptent « UITab » et « UITabGroup » basculent automatiquement entre les vues barre d’onglets et barre latérale. Les barres latérales sont plus esthétiques lorsqu’elles recouvrent un contenu dynamique, et ce grâce à la nouvelle « UIBackgroundExtensionView » qui crée un effet visuel transparent.

    • 7:19 - Navigation et barres d’outils
    • Dans iOS 26, la navigation et les barres d’outils présentent une nouvelle apparence semblable à du verre, flottant au-dessus du contenu et rassemblant automatiquement les éléments des boutons de barre en groupes visuels partageant des arrière-plans translucides. Les boutons de texte, les boutons « Terminé » et « Fermer » du système, ainsi que les boutons au style marqué ont des arrière-plans distincts. Vous pouvez personnaliser les groupes de boutons, les couleurs de teinte et les arrière-plans. « UINavigationItem » offre un meilleur contrôle sur les zones de titre et de grand titre, et permet également de définir des sous-titres. Les vues de défilement situées sous les barres de navigation ou les barres d’outils appliquent un effet de bord pour la lisibilité.

    • 13:31 - Présentations
    • Le design des présentations, des menus, des fenêtres contextuelles, des fiches et des feuilles Action est maintenant mis à jour pour améliorer la continuité visuelle. Les boutons en verre se transforment en incrustations pour les menus et les fenêtres contextuelles, et les fiches adaptent désormais leur apparence en passant de petites à de grandes hauteurs. Sur iPhone comme sur iPad, les feuilles Action sont ancrées à leur vue source et apparaissent directement au-dessus. Supprimez les arrière-plans personnalisés des fiches et spécifiez des vues sources pour les feuilles Action et les contrôleurs d’alerte afin d’appliquer les nouvelles transitions et les nouveaux comportements. Les feuilles Action intégrées sur iPhone n’ont plus de bouton d’annulation, car le fait de toucher n’importe où ailleurs les fait disparaître.

    • 15:18 - Recherche
    • iOS 26 améliore l’expérience de recherche sur iPhone et iPad. Sur iPhone, la barre de recherche se trouve désormais dans la barre d’outils, apparaissant sous forme de champ étendu ou de bouton en fonction de l’espace. Sur iPad, la recherche se trouve au niveau du bord arrière de la barre de navigation pour les vues scindées ou se présente sous forme d’onglet dédié dans un « UITabBarController » et se transforme en champ de recherche lorsque vous touchez l’écran. Vous pouvez également personnaliser le placement de la recherche dans les barres latérales, les barres d’onglets et les barres de navigation, et permettre l’activation automatique des champs de recherche une fois l’onglet sélectionné.

    • 17:24 - Contrôles
    • Les commandes iOS ont subi une refonte subtile, conservant leur familiarité tout en intégrant de nouveaux effets Liquid Glass. Les curseurs ont des fonctionnalités améliorées telles que la conservation de l’élan, l’étirement et la possibilité d’afficher des marques de graduation, des valeurs neutres ainsi qu’un style sans bouton ressemblant à une barre de progression. Deux nouvelles apparences Liquid Glass sont disponibles pour les boutons. Assurez-vous que vos dispositions prennent en charge les tailles de commande mises à jour.

    • 19:15 - Éléments personnalisés
    • UIKit fournit des API pour vous permettre d’appliquer Liquid Glass à votre interface utilisateur personnalisée. Utilisez Liquid Glass avec parcimonie pour les éléments les plus importants. Appliquez l’effet à des vues personnalisées à l’aide d’une « UIVisualEffectView » et d’un « UIGlassEffect », puis personnalisez la forme, l’apparence et la couleur de la teinte. Vous pouvez animer les éléments Liquid Glass pour qu’ils se matérialisent, se dématérialisent et fusionnent comme des gouttelettes d’eau lorsqu’ils se chevauchent. Le « UIGlassContainerEffect » assure une adaptation uniforme et une cohérence entre les différents arrière-plans. Les éléments interactifs peuvent s’élargir et rebondir après l’interaction utilisateur, améliorant ainsi l’expérience.

    • 25:01 - Étapes suivantes
    • Liquid Glass introduit de nouveaux composants et matériaux UIKit que vous pouvez facilement intégrer dans les apps. Compilez vos apps avec Xcode 26, auditez chaque écran et envisagez de remplacer les contrôles personnalisés par des contrôles UIKit standard. Utilisez Liquid Glass pour améliorer le design de votre app, tout en mettant en valeur des cas d’utilisation spécifiques.

Developer Footer

  • Vidéos
  • WWDC25
  • Créez un UIKit app avec le nouveau design
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • 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 Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines