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
 

Videos

Abrir menú Cerrar menú
  • Colecciones
  • Todos los videos
  • Información

Más videos

  • Información
  • Resumen
  • Código
  • Crea una app de UIKit con el nuevo diseño

    Actualiza tu app de UIKit para aprovechar al máximo el nuevo sistema de diseño. Analizaremos los cambios clave en las vistas de pestañas y divididas, barras, presentaciones, búsqueda y controles, y cómo usar Liquid Glass en tu IU personalizada. Para aprovechar al máximo este video, recomendamos ver primero “Conoce el nuevo sistema de diseño” para obtener orientación general sobre diseño.

    Capítulos

    • 0:00 - Introducción
    • 1:55 - Vistas de pestañas y vistas divididas
    • 7:19 - Navegación y barras de herramientas
    • 13:31 - Presentaciones
    • 15:18 - Buscar
    • 17:24 - Controles
    • 19:15 - Elementos personalizados
    • 25:01 - Próximos pasos

    Recursos

    • Adopting Liquid Glass
    • Human Interface Guidelines
      • Video HD
      • Video SD

    Videos relacionados

    WWDC25

    • Conoce el nuevo sistema de diseño
    • Conoce Liquid Glass
    • Haz que tu app UIKit sea más flexible
    • Novedades de UIKit

    WWDC24

    • Elevate your tab and sidebar experience in iPadOS
    • Enhance your UI animations and transitions
  • Buscar este video…
    • 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 - Introducción
    • Descubre cómo puedes incorporar el nuevo lenguaje de diseño de iOS 26 en tus apps. El nuevo diseño, centrado en el material dinámico y translúcido llamado Liquid Glass, actualiza automáticamente la apariencia de las apps recopiladas con el último SDK. En este video, analizamos varios aspectos del nuevo diseño, incluidos la apariencia y el comportamiento actualizados de las vistas de pestañas, las vistas divididas, las barras de navegación y de herramientas, y mucho más, que ahora incluyen elementos de Liquid Glass. También se brinda orientación sobre cómo implementar Liquid Glass en elementos personalizados de la IU.

    • 1:55 - Vistas de pestañas y vistas divididas
    • “UITabBarController” y “UISplitViewController” ahora tienen la apariencia moderna de Liquid Glass. En el iPhone, las barras de pestañas ahora flotan sobre el contenido y pueden minimizarse durante el desplazamiento para ayudar al usuario a enfocarse en el contenido. Puedes personalizar este comportamiento y agregar una vista adicional sobre de la barra de pestañas, que se desplaza hacia abajo cuando se minimiza. En el iPad, las barras de pestañas y las barras laterales también flotan con Liquid Glass. Las apps que adoptan “UITab” y “UITabGroup” se adaptan automáticamente para alternar entre las vistas de barra de pestañas y de barra lateral. Las barras laterales se ven mejor sobre contenido vibrante, lo que se logra con el nuevo “UIBackgroundExtensionView”, que crea un efecto visual armónico.

    • 7:19 - Navegación y barras de herramientas
    • En iOS 26, las barras de navegación y de herramientas presentan una nueva apariencia similar al vidrio, donde los botones se agrupan automáticamente en fondos transparentes que flotan sobre el contenido. Los botones de texto, los botones “Listo” y “Cerrar”, y los botones de estilo destacados tienen fondos separados. Puedes personalizar los grupos de botones, los colores de tono y los fondos. “UINavigationItem” brinda más control sobre el título y las áreas de título grandes, y también permite configurar subtítulos. En las vistas de desplazamiento debajo de las barras de navegación o de herramientas, se aplica un efecto de borde para mejorar la legibilidad.

    • 13:31 - Presentaciones
    • El diseño de presentaciones, menús, ventanas emergentes, hojas y hojas de acción ahora se actualiza para mejorar la continuidad visual. Los botones transparentes se transforman en menús y ventanas emergentes superpuestos, y las hojas ahora adaptan su apariencia al subir por la pantalla. En el iPhone y iPad, las hojas de acción se encuentran ancladas a sus vistas de origen y aparecen directamente sobre ellas. Elimina los fondos personalizados de las hojas y especifica las vistas de origen para que las hojas de acción y los controladores de alerta apliquen las transiciones y los comportamientos nuevos. En el iPhone, las hojas de acción en línea ya no tienen un botón para cancelar porque desaparecen al tocar en cualquier otro lugar.

    • 15:18 - Buscar
    • La experiencia de búsqueda en el iPhone y iPad se mejoró en iOS 26. En el iPhone, la barra de búsqueda ahora se encuentra en la barra de herramientas y se muestra como un campo expandido o un botón según el espacio. En el iPad, la búsqueda se muestra en el borde posterior de la barra de navegación en las vistas divididas, o como pestaña dedicada en un “UITabBarController”, que se expande en un campo de búsqueda cuando el usuario la toca. También puedes personalizar la ubicación de la búsqueda en las barras laterales, de pestañas y de navegación, y habilitar la activación automática del campo de búsqueda al seleccionar una pestaña.

    • 17:24 - Controles
    • En los controles de iOS, se aplicó un rediseño sutil que mantiene su familiaridad e incorpora los nuevos efectos de Liquid Glass. Los controles deslizantes tienen funcionalidades mejoradas, como conservación del impulso, el estiramiento y la opción de mostrar marcas de verificación, valores neutrales y un estilo sin pulgar que se asemeja a una barra de progreso. Liquid Glass ofrece dos nuevas apariencias para los botones. Asegúrate de que tus diseños se adapten a los tamaños actualizados de los controles.

    • 19:15 - Elementos personalizados
    • UIKit proporciona API para que puedas incorporar Liquid Glass en tu IU personalizada. Usa Liquid Glass con moderación para los elementos más importantes. Para aplicar el efecto a vistas personalizadas, usa “UIVisualEffectView” y “UIGlassEffect”, y personaliza la forma, la apariencia y el color del tinte. Puedes aplicar animaciones a elementos de Liquid Glass para que se materialicen, se desmaterialicen y se fusionen perfectamente como gotas de agua cuando se superponen. El “UIGlassContainerEffect” garantiza una adaptación y una consistencia uniformes en diferentes fondos. Los elementos interactivos pueden adaptar su escala y rebotar según las interacciones del usuario, lo que mejora la experiencia.

    • 25:01 - Próximos pasos
    • Liquid Glass presenta nuevos componentes y materiales de UIKit que puedes integrar fácilmente en tus apps. Crea tus apps con Xcode 26, revisa cada pantalla y considera reemplazar los controles personalizados con los controles estándares de UIKit. Aprovecha Liquid Glass para mejorar el diseño de tu app y generar resultados destacados en tus casos de uso especiales.

Developer Footer

  • Videos
  • WWDC25
  • Crea una app de UIKit con el nuevo diseño
  • 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