2015-04-25 4 views
-1

Я попытался добавить 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. 
    } 

} 
+0

Смотрите «Стендфордский курс разработки приложений IOS 8 с быстрым», эпизод «12. Динамическая анимация» подробно объясняет все это. – Simon

ответ

0

Этот код бессмыслица:

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 и и 2, вы не поняли, что такое переменная.

+0

Да, я понял, что сразу после публикации вы знаете, как сделать оба блока анимированными? @matt – tanman

+0

Да, да, и теперь, если вы думаете о моем ответе и как изменить свой код в соответствии с ним. Кажется, я ответил на вопрос, который вы задали. – matt

+0

Я получил это благодаря. Как я могу сменить блоки на кнопки? @matt – tanman

Смежные вопросы