0
에서 상속 된 DropitBehavior
이라는 클래스가 있습니다. 내 UIViewController
에는 두 가지 속성이 있습니다.어디에서 UIDynamicAnimator에 대한 addBehavior를 호출해야합니까?
@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;
}
하지만 animator
초기화에 addBehavior
를 호출하는 경우, 전혀 애니메이션 없을 것이다. 내가 이해하는 한, 애니메이션은 두 가지 방식으로 실행되어야합니다. 두 번째 방법은 무엇이 잘못 되었나요?
'dropitBehavior' 또한 속성입니다. 나는'animator'가'alloc'과'init'을 호출 한 후에 만들어 졌다고 생각합니다. – amazingjxq
'.animator' 속성이 다른 곳에서 사용 된 경우에만 해당합니다. 그렇지 않으면'- (UIDynamicAnimator *) animator' 메소드는 결코 호출되지 않으므로'alloc'' init'은 실행되지 않습니다 –
고맙습니다. 그게 내가 원하는거야. – amazingjxq