No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Crear y utilizar 铆conos personalizados

9/27
Recursos

Aportes 9

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Aqu铆 el c贸mo qued贸:

Y el logo:

Asi e艣 como quedo: ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-03-12%20a%20la%28s%29%2014.16.44-68024652-9c90-42cc-8d37-3bd6679076ad.jpg) ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-03-12%20a%20la%28s%29%2014.14.51-9a4f1cc0-f5dc-4ad6-862a-33d61f7737c1.jpg)
![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-02-02%20a%20la%28s%29%204.07.36%E2%80%AFp.m.-6e8d1476-89c7-4231-bfbf-06c872765f8c.jpg)

Something I did

Mi Aporte de la clase

Imagen principal

Imagen en horizontal

Imagen en del inicio


Aporte adicional

Le agregu茅 una peque帽a animaci贸n de coraz贸n cuando se presiona el bot贸n de 鈥淪end 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()
                })
            }
            
        }
        
    }
    
}

El resultado

App:

Icon:

Aporte:

App:

Icono:

Aporte: