0

DropitBehaviorから継承された というクラスがありUIDynamicBehaviorます。my には 2 つのプロパティがありますUIViewController

@property (strong, nonatomic) UIDynamicAnimator *animator;
@property (strong, nonatomic) DropitBehavior *dropitBehavior;

遅延初期化子は以下に定義されています。そして、アニメーションは正しく実行されます。

- (UIDynamicAnimator *)animator
{
    if (!_animator) {
        _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.gameView];
        //[_animator addBehavior:self.dropitBehavior];
    }

    return _animator;
}

- (DropitBehavior *)dropitBehavior
{
    if (!_dropitBehavior) {
        _dropitBehavior = [[DropitBehavior alloc] init];
        [self.animator addBehavior:_dropitBehavior];
    }

    return _dropitBehavior;
}

addBehaviorしかし、イニシャライザを呼び出すとanimator、アニメーションはまったくありません。私が理解している限り、アニメーションは両方の方法で実行する必要があります。2番目の方法の何が問題になっていますか?

4

1 に答える 1