Я попытался добавить var square
и все, что я сделал для squareView
. Но все, что я получаю, - это одна коробка, а другая просто стоит там. Есть ли более простой способ добавить еще один блок, который выполняет те же действия, что и squareView
?
import UIKit
class interestViewController: UIViewController {
var squareView: UIView!
var square: UIView!
var gravity: UIGravityBehavior!
var animator: UIDynamicAnimator!
var collision: UICollisionBehavior!
override func viewDidLoad() {
super.viewDidLoad()
squareView = UIView(frame: CGRectMake(100, 100, 100, 100))
square = UIView(frame: CGRectMake(200, 100, 100, 100))
squareView.backgroundColor = UIColor.blackColor()
square.backgroundColor = UIColor.blackColor()
view.addSubview(square)
view.addSubview(squareView)
animator = UIDynamicAnimator(referenceView: view)
animator = UIDynamicAnimator(referenceView: view)
gravity = UIGravityBehavior(items: [squareView])
gravity = UIGravityBehavior(items: [square])
animator.addBehavior(gravity)
animator.addBehavior(gravity)
collision = UICollisionBehavior(items: [squareView])
collision = UICollisionBehavior(items: [square])
collision.translatesReferenceBoundsIntoBoundary = true
animator.addBehavior(collision)
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Этот код - полная чепуха:
gravity = UIGravityBehavior(items: [squareView])
gravity = UIGravityBehavior(items: [square])
animator.addBehavior(gravity)
animator.addBehavior(gravity)
Когда вы устанавливаете переменную gravity
в одно поведение и другое поведение прямо в строке, первое поведение просто выкидывается, как если бы оно никогда не существовало. Поэтому, естественно, когда вы приближаетесь к добавлению поведения, добавляется только одно поведение: одна gravity
которая оставлена (которую вы тогда, еще более бессмысленно, добавляете дважды). Таким образом, естественно, что только один блок анимирован.
Подумайте об этом проще:
var x = 0
x = 1
x = 2
Теперь, каково значение переменной x
? Если вы считаете, что это 0 и 1 и 2, вы не поняли, что такое переменная.