CursosEmpresasBlogLiveConfPrecios

Cambiar elementos de forma programática

Clase 12 de 27 • Curso de Swift con Storyboards

Clase anteriorSiguiente clase

Contenido del curso

Primeros pasos en Swift
  • 1
    Bienvenida a los Storyboards de Swift

    Bienvenida a los Storyboards de Swift

    00:56
  • 2
    ¿Qué es Swift?

    ¿Qué es Swift?

    05:21
  • 3
    Recursos necesarios para programar en Swift

    Recursos necesarios para programar en Swift

    03:06
  • 4
    Instalación de Xcode

    Instalación de Xcode

    03:09
Mi primera app en Swift
  • 5
    Configurar un proyecto desde cero en Xcode

    Configurar un proyecto desde cero en Xcode

    13:22
  • 6
    Diseño de una aplicación usando componentes del UIKit para Storyboards

    Diseño de una aplicación usando componentes del UIKit para Storyboards

    21:54
  • 7
    Importación de imágenes a los Storyboards

    Importación de imágenes a los Storyboards

    09:14
  • 8
    Stackviews y Constraints

    Stackviews y Constraints

    09:35
  • 9
    Crear y utilizar íconos personalizados

    Crear y utilizar íconos personalizados

    06:27
  • 10
    Reto: replica la interfaz de calculadora del iPhone y muéstranos el resultado

    Reto: replica la interfaz de calculadora del iPhone y muéstranos el resultado

    02:34
Setup
  • 11
    Clonar el proyecto con la UI creada en Figma

    Clonar el proyecto con la UI creada en Figma

    09:36
  • 12
    Cambiar elementos de forma programática

    Cambiar elementos de forma programática

    17:24
  • 13
    Modelo Vista Controlador de nuestra app en Swift

    Modelo Vista Controlador de nuestra app en Swift

    07:54
  • 14
    Obtener las respuestas del usuario

    Obtener las respuestas del usuario

    10:49
  • 15
    Revisión de la Poke API y creación del modelo de datos

    Revisión de la Poke API y creación del modelo de datos

    15:21
  • 16
    Consumo de la Poke API

    Consumo de la Poke API

    19:56
  • 17
    Extender la funcionalidad del controlador

    Extender la funcionalidad del controlador

    14:22
Lógica del juego
  • 18
    Generar números aleatorios

    Generar números aleatorios

    12:38
  • 19
    Image manager

    Image manager

    13:27
  • 20
    Game model del juego

    Game model del juego

    08:55
  • 21
    Validación de las respuestas del jugador

    Validación de las respuestas del jugador

    17:42
  • 22
    Score y reset del juego

    Score y reset del juego

    12:10
  • 23
    Flujo de storyboards

    Flujo de storyboards

    04:58
  • 24
    Navegación entre vistas

    Navegación entre vistas

    07:40
  • 25
    Resultado final de nuestra app

    Resultado final de nuestra app

    06:00
Ejecución
  • 26

    Ejecución de Aplicaciones iOS en Dispositivos Físicos con Xcode

    02:45
Despedida
  • 27
    Siguientes pasos en Swift

    Siguientes pasos en Swift

    01:06
    Kevin Alexander Ramírez Rodríguez

    Kevin Alexander Ramírez Rodríguez

    student•
    hace 2 años

    Hola,

    Al compilar me genero el siguiente error :

    Initializer for conditional binding must have Optional type, not 'AnyView'

    pero se soluciona actualizando el package "Kingfisher" en mi proyecto quedo en la versión 7.7.0

    luego volví a compilar pero no inicializaba la app debido al siguiente error :

    setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key

    El cual lo solucione yendo al show the Connections Inspector en donde uno de los OUTLETS "pokemonImage" se encontraba repetido y con una alerta, lo elimine y volví a compilar y funciono correctamente la app

      Brian Chuquiruna

      Brian Chuquiruna

      student•
      hace 2 años

      Muchas gracias por el dato. Me ocurrió lo mismo, y gracias a tu comentario pude resolver el problema. (En caso alguien mas tenga este problema solo debe dar clic derecho en Kingfisher. y le aparecerá la opción de actualizar el paquete. No me da la opción de elegir a que versión quiero que se actualice, pero se actualizo automáticamente a la versión 7.8.1)

      Gera Meraki

      Gera Meraki

      student•
      hace 2 años

      Gracias por la solucion, en mi caso quedo en el paquete: Kingfisher 7.9.0

    Victor Hugo Vázquez Gómez

    Victor Hugo Vázquez Gómez

    student•
    hace 2 años

    @IBOutlet es una directiva al compilador de Swift para linkear la variable con el objeto en la UI del Storyboard, IB significa Interface Builder.

    weak hace referencia a que la variable puede ser desasignada por el compilador, usamos weak porque la el boton en la UI ya tiene una referencia fuerte "strong" y una vez cambiemos de pantalla la variable weak sera limpiada sin mas complicacion.

    Por defecto cuando usamos una referencia weak la variable puede ser nil, por eso utilizamos el signo de exclamacion al final para hacer un unwraping porque sabemos que cuando se ejecute ese codigo la UI ya va a estar cargada y si va a existir ese boton, pero si es un boton o elemento que vamos a cargar condicionalmente no creo que sea bueno hacer el force unwraping.

    Edgar Arturo Villalobos López

    Edgar Arturo Villalobos López

    student•
    hace 2 años

    Por que al dar en la opción Assistant la pantalla me muestra solo la leyenda "No Assistant Results" ?

    David Duque

    David Duque

    student•
    hace 3 años

    Hola, me aparece este error

    Exception NSException * "[<who_is_that_pokemon.PokemonViewController 0x1381076b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key answerButtons." 0x0000600000f03a80

      Alex Camacho

      Alex Camacho

      teacher•
      hace 3 años

      Hola! ese error es porque estas mandando un valor que no está definido o no existe. Revisa que datos estás pasando.

      Nicolas Silva

      Nicolas Silva

      student•
      hace 3 años

      te paso lo mismo que a mi, asumo que cambiaste el nombre de una variable, como ya la asociaste antes, vas a tener que borrar la variable, volver a asignarla con el nombre que querias y listo, si no encuentras cual es, en la pestaña de inspeccion, ve al ultimo icono a la derecha, el que dice show the connections inspector y busca el boton, label o el item que cambiaste, y mira la referencia

    Nicolas Silva

    Nicolas Silva

    student•
    hace 3 años

    que horrible experiencia me he llevado jajaja, como es posible que al asociar un boton o un label, el momento que cambies en el codigo ya sea el nombre o alguna parte de la variable, la asociacion no cambia, se queda con los datos anteriores, tienes que volver a reasignarlo y cambiar nuevamente la parte del codigo, me paso un monton al querer cambiar los nombres de las variables

      Antonio Dragone

      Antonio Dragone

      student•
      hace 3 años

      Recuerda que es buena práctica asignar los nombres de los elementos en la etapa de diseño y tratar de mantenerlos invariables durante todo el desarrollo. En todo caso, recuerda que los entornos de desarrollo tienen la opción de "Buscar y reemplazar" pero debes utilizar esta función con cuidado. También es buena práctica establecer un estándar para los nombres de los elementos, por ejemplo colocar el tipo de elemento como prefijo como lo menciona Alex: labelPuntaje, buttonRespuesta, imagePokemon, etc.

    Stephania Millán

    Stephania Millán

    student•
    hace 3 meses

    Hola a todos!

    Así voy con los botones, jugué un poco con las propiedades y les puse mi estilo.

    Aprendí que la propiedad "shadowOffset" también se puede usar en negativo (-2 por ejemplo) para ubicar la posición al lado contrario.

    Jesus Ervin Chapi Suyo

    Jesus Ervin Chapi Suyo

    student•
    hace 3 años

    Una vez creado el @IBAction hay alguna forma de editar sus propiedades (Ejemplo: Conecction, Type, event, ec).

    Gera Meraki

    Gera Meraki

    student•
    hace 2 años

    En mi caso para que pudiera funcionar el cambiar el puntaje de 0 a 100, tuve que escribir " labelControler" como nombre de variable en lugar de "labelScore". Esto porque me imagino ese es el nombre original de dicha variable, alguien sabe como puedo cambiar el nombre de la varibale? . PD: Clone el proyecto desde github .

    Captura de pantalla 2023-08-21 a la(s) 12.54.36 a.m..png

    Gagandeep Dass Kaur

    Gagandeep Dass Kaur

    student•
    hace 9 meses

    me salta este error al hacer el ejecutar:

    Exception NSException * "-[UIButton copyWithZone:]: unrecognized selector sent to instance 0x101e116f0" 0x0000600000c74b10

    Mario Tepe

    Mario Tepe

    student•
    hace 2 años

    Para que sirve cada instrucción

    Francisco Alberto

    Francisco Alberto

    student•
    hace 2 años

    Buena clase Alex :)

    Keiner Calpabire

    Keiner Calpabire

    student•
    hace 3 años

    así lo hice sin utiliza el asistente

    aporte_onclick.png

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads