Skip to content

Commit

Permalink
feat: make emoji as cell content
Browse files Browse the repository at this point in the history
  • Loading branch information
dannaward committed Mar 26, 2023
1 parent 95a49af commit 67f5bfe
Showing 1 changed file with 29 additions and 16 deletions.
45 changes: 29 additions & 16 deletions iOSLab/InstaStyleParticle/InstaStyleParticleVC.swift
Expand Up @@ -18,22 +18,35 @@ class InstaStyleParticleVC: UIViewController {

extension InstaStyleParticleVC {
private func generateParticle() {
let heartEmitter = CAEmitterLayer()
heartEmitter.emitterPosition = CGPoint(x: view.bounds.width/2, y: view.bounds.height/2)
heartEmitter.emitterSize = CGSize(width: 100, height: 100)
heartEmitter.emitterShape = .point
let emitterLayer = CAEmitterLayer()
emitterLayer.emitterPosition = CGPoint(x: view.bounds.width/2, y: view.bounds.height - 100)
emitterLayer.emitterSize = CGSize(width: 100, height: 100)
emitterLayer.emitterShape = .point

let heartCell = CAEmitterCell()
heartCell.contents = UIImage(named: "heart.png")?.cgImage
heartCell.birthRate = 5
heartCell.lifetime = 1.0
heartCell.velocity = 100
heartCell.emissionRange = .pi / 5
heartCell.emissionLongitude = .pi / -2
heartCell.alphaRange = 0.3
heartCell.alphaSpeed = -0.5

heartEmitter.emitterCells = [heartCell]
view.layer.addSublayer(heartEmitter)
let emitterCell = CAEmitterCell()
emitterCell.contents = {
let emoji = "🎉"
let font = UIFont.systemFont(ofSize: 20)
let size = emoji.size(withAttributes: [.font: font])
let renderer = UIGraphicsImageRenderer(size: size)
let image = renderer.image { context in
emoji.draw(at: .zero, withAttributes: [.font: font])
}
return image.cgImage
}()
emitterCell.birthRate = 20
emitterCell.lifetime = 1.0
emitterCell.velocity = 300
emitterCell.velocityRange = 50
emitterCell.emissionRange = .pi / 5
emitterCell.emissionLongitude = .pi / -2
emitterCell.alphaRange = 0.3
emitterCell.alphaSpeed = -0.5
emitterCell.scale = 0.15
emitterCell.scaleRange = 1
emitterCell.scaleSpeed = 0.5

emitterLayer.emitterCells = [emitterCell]
view.layer.addSublayer(emitterLayer)
}
}

0 comments on commit 67f5bfe

Please sign in to comment.