2014-11-24 9 views
6

Sto studiando lo sviluppo di iOS ora. Quando aggiungo una vista retta e voglio che sia influenzata dalla gravità, costruisci ed esegui la mia app di test, trovo che non abbia la gravità. Questo è il codice viewDidLoad nel mio viewController.m:Perché UIKit Dynamics non funziona?

[super viewDidLoad]; 

// Do any additional setup after loading the view, typically from a nib. 
UIView *squre = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; 
squre.backgroundColor = [UIColor grayColor]; 
[self.view addSubview:squre]; 

UIDynamicAnimator *_animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; 
UIGravityBehavior *_gravity = [[UIGravityBehavior alloc] initWithItems:@[squre]]; 
[_animator addBehavior:_gravity]; 

risposta

8

vostri UIDynamicAnimator viene deallocato quando viewDidLoad rendimenti. Non può animare nulla se è deallocato. Fare una proprietà:

@property (nonatomic) UIDynamicAnimator *animator; 

e impostarlo:

self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; 
+1

OH YEAH, thanks ~ –