如何使图像在iOS中下降

如何使图像在iOS中下降,ios,swift,uiimageview,uikit-dynamics,Ios,Swift,Uiimageview,Uikit Dynamics,我需要做的事情之一就是让火球掉下来。我可以使它与一个正方形一起工作,但我如何使它与我的图像一起工作?我曾经让广场倒塌的网站是: 这是我对图像的尝试: import UIKit class SecondViewController: UIViewController { @IBOutlet weak var fireball: UIImageView! var animator: UIDynamicAnimator! var gravity: UIGravityBeh

我需要做的事情之一就是让火球掉下来。我可以使它与一个正方形一起工作,但我如何使它与我的图像一起工作?我曾经让广场倒塌的网站是:

这是我对图像的尝试:

import UIKit

class SecondViewController: UIViewController {

    @IBOutlet weak var fireball: UIImageView!

    var animator: UIDynamicAnimator!
    var gravity: UIGravityBehavior!
    var collision: UICollisionBehavior!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background23.png")!)

        animator = UIDynamicAnimator(referenceView: view)
        gravity = UIGravityBehavior(items: [fireball])
        animator.addBehavior(gravity)

        collision = UICollisionBehavior(items: [fireball])
        collision.translatesReferenceBoundsIntoBoundary = true
        animator.addBehavior(collision)
    }

    @IBOutlet weak var imageToMove: UIImageView!

    @IBAction func buttonmoveleft(_ sender: Any) {
        self.imageToMove.frame.origin.x += 20
    }

    @IBAction func buttonmoveright(_ sender: Any) {
        self.imageToMove.frame.origin.x -= 20
    }
}
在广场上:

import UIKit

class SecondViewController: UIViewController {

    var animator: UIDynamicAnimator!
    var gravity: UIGravityBehavior!
    var collision: UICollisionBehavior!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background23.png")!)

        let square = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
        square.backgroundColor = UIColor.gray
        view.addSubview(square)

        animator = UIDynamicAnimator(referenceView: view)
        gravity = UIGravityBehavior(items: [square])
        animator.addBehavior(gravity)

        collision = UICollisionBehavior(items: [square])
        collision.translatesReferenceBoundsIntoBoundary = true
        animator.addBehavior(collision)
    }

    @IBOutlet weak var imageToMove: UIImageView!

    @IBAction func buttonmoveleft(_ sender: Any) {
        self.imageToMove.frame.origin.x += 20
    }

    @IBAction func buttonmoveright(_ sender: Any) {
        self.imageToMove.frame.origin.x -= 20
    }
}

尝试使用“self”标记传递对象(对象属性):


这是我在第16行得到的错误消息:“线程1:致命错误:在展开可选值“Mmm…时意外地发现nil”,您可以尝试使用Outlet来实例化代码中的图像吗?var fireball:UIImageView=UIImageView(…)?刚刚发布了一个与此相关的新问题。。。你能回答吗?
import UIKit

class SecondViewController: UIViewController {

    @IBOutlet weak var fireball: UIImageView!

    var animator: UIDynamicAnimator!
    var gravity: UIGravityBehavior!
    var collision: UICollisionBehavior!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background23.png")!)

        animator = UIDynamicAnimator(referenceView: self.view)
        gravity = UIGravityBehavior(items: [self.fireball])

        collision = UICollisionBehavior(items: [self.fireball])
        collision.translatesReferenceBoundsIntoBoundary = true

        animator.addBehavior(collision)
        animator.addBehavior(gravity)
    }

    @IBOutlet weak var imageToMove: UIImageView!

    @IBAction func buttonmoveleft(_ sender: Any) {
        self.imageToMove.frame.origin.x += 20
    }

    @IBAction func buttonmoveright(_ sender: Any) {
        self.imageToMove.frame.origin.x -= 20
    }
}