Aquí el cómo quedó:
Y el logo:
Primeros pasos en Swift
Bienvenida a los Storyboards de Swift
¿Qué es Swift?
Recursos necesarios para programar en Swift
Instalación de Xcode
Mi primera app en Swift
Configurar un proyecto desde cero en Xcode
Diseño de una aplicación usando componentes del UIKit para Storyboards
Importación de imágenes a los Storyboards
Stackviews y Constraints
Crear y utilizar íconos personalizados
Reto: replica la interfaz de calculadora del iPhone y muéstranos el resultado
Setup
Clonar el proyecto con la UI creada en Figma
Cambiar elementos de forma programática
Modelo Vista Controlador de nuestra app en Swift
Obtener las respuestas del usuario
Revisión de la Poke API y creación del modelo de datos
Consumo de la Poke API
Extender la funcionalidad del controlador
Lógica del juego
Generar números aleatorios
Image manager
Game model del juego
Validación de las respuestas del jugador
Score y reset del juego
Flujo de storyboards
Navegación entre vistas
Resultado final de nuestra app
Ejecución
Ejecutar nuestra aplicación en un iPhone
Despedida
Siguientes pasos en Swift
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Alejandra Camacho
Aportes 8
Preguntas 0
Aquí el cómo quedó:
Y el logo:
Aporte:
Aporte:
App:
Icono:
El resultado
App:
Icon:
Le agregué una pequeña animación de corazón cuando se presiona el botón de “Send love”
Utilice el siguiente código, el cual agrega una acción al botón (se tiene que enlazar desde la vista) y un enlace al mismo para obtener la posición. Adjunto el código de la animación (se puede mejorar y optimizar)
for _ in 1...6{
let randomtime = Double.random(in: 0.3...0.8)
DispatchQueue.main.asyncAfter(deadline: .now() + randomtime){
let heartImage = UIImage(systemName: "heart.fill")
let heartImageView = UIImageView(image: heartImage)
heartImageView.tintColor = UIColor.red
// Establecer la posición inicial y el tamaño del corazón
let heartSize = CGFloat(20)
let x = CGFloat.random(in: self.buttom.frame.minX ... self.buttom.frame.maxX)
let y = self.buttom.frame.maxY
heartImageView.frame = CGRect(x: x, y: y, width: heartSize, height: heartSize)
// Agregar el corazón a la vista
self.view.addSubview(heartImageView)
// Animación del corazón
UIView.animate(withDuration: 1.5, delay: 0, options: .curveEaseOut, animations: {
heartImageView.frame.origin.y = self.buttom.frame.minY - Double.random(in: 10...30)
}, completion: { _ in
heartImageView.removeFromSuperview()
})
}
}
Y el ViewController quedaría de este modo.
//
// ViewController.swift
// Proyecto platzi
//
// Created by Maximiliano Ovando Ramírez on 19/05/23.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var buttom: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func send(_ sender: Any) {
for _ in 1...6{
let randomtime = Double.random(in: 0.3...0.8)
DispatchQueue.main.asyncAfter(deadline: .now() + randomtime){
let heartImage = UIImage(systemName: "heart.fill")
let heartImageView = UIImageView(image: heartImage)
heartImageView.tintColor = UIColor.red
// Establecer la posición inicial y el tamaño del corazón
let heartSize = CGFloat(20)
let x = CGFloat.random(in: self.buttom.frame.minX ... self.buttom.frame.maxX)
let y = self.buttom.frame.maxY
heartImageView.frame = CGRect(x: x, y: y, width: heartSize, height: heartSize)
// Agregar el corazón a la vista
self.view.addSubview(heartImageView)
// Animación del corazón
UIView.animate(withDuration: 1.5, delay: 0, options: .curveEaseOut, animations: {
heartImageView.frame.origin.y = self.buttom.frame.minY - Double.random(in: 10...30)
}, completion: { _ in
heartImageView.removeFromSuperview()
})
}
}
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?