代码之家  ›  专栏  ›  技术社区  ›  Nags

如何在iOS中放置图像

  •  -1
  • Nags  · 技术社区  · 7 年前

    我需要做的一件事是让一个火球掉下来。我可以让它与一个正方形一起工作,但我如何才能使它与我的图像一起工作?我曾经让广场倒塌的网站是: https://www.raywenderlich.com/76147/uikit-dynamics-tutorial-swift

    这是我对图像的尝试:

    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
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Andrea Vultaggio    7 年前

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

    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
        }
    }