尝试显示资产文件夹中的图像

时间:2020-05-09 18:56:55

标签: ios swift xcode image

我正在尝试在代码中的资产文件夹中显示标题为“ purpleConfetti”的图像,但出现错误,“使用未解决的标识符”。我该如何解决?

func displayConfetti() {
    let emitter = Emitter.get(with: purpleConfetti)
    emitter.emitterPosition = CGPoint(x: view.frame.size.width / 2, y: -10)
    emitter.emitterSize = CGSize(width: view.frame.size.width, height: 2)
    view.layer.addSublayer(emitter)
}

整个项目的目标是使五彩纸屑从界面顶部掉下来。

import UIKit
class Emitter {
     static func get(with image: UIImage) -> CAEmitterLayer {
         let emitter = CAEmitterLayer()
         emitter.emitterShape = CAEmitterLayerEmitterShape.line
         emitter.emitterCells = generateEmitterCells(with: image)

         return emitter
    }

    static func generateEmitterCells(with image: UIImage) -> [CAEmitterCell] {
         var cells = [CAEmitterCell]()
         let cell = CAEmitterCell()
         cell.contents = image.cgImage
         cell.birthRate = 4
         cell.lifetime = 14
         cell.velocity = CGFloat(25)
         cell.emissionLongitude = (180 * (.pi/180))
         cell.emissionRange = (45 * (.pi/180))
         cell.spinRange = 3.5
         cell.scale = 0.1
         cell.scaleRange = 0.25
         cells.append(cell)
         return cells
     }
}

2 个答案:

答案 0 :(得分:1)

您需要加载图片:

let purpleConfetti: UIImage = UIImage(named: "purpleConfetti")
let emitter: Emitter = Emitter.get(with: purpleConfetti)

答案 1 :(得分:0)

let emitter = Emitter.get(with: purpleConfetti)替换为

let emitter = Emitter.get(with: UIImage(named: "purpleConfetti"))

OR

let emitter = Emitter.get(with: #imageLiteral(resourceName: "purpleConfetti"))