サーバーから成功の応答を受け取ったときに、ボタンに重力を適用したいと考えています。次のような UIKitDynamics 要素を作成しています。
-(void) setup
{
_animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
_gravity = [[UIGravityBehavior alloc] initWithItems:@[self.saveShareButton]];
_collision = [[UICollisionBehavior alloc] initWithItems:@[self.saveShareButton]];
_collision.translatesReferenceBoundsIntoBoundary = YES;
_push = [[UIPushBehavior alloc] initWithItems:@[self.saveShareButton] mode:UIPushBehaviorModeInstantaneous];
[_push setPushDirection:CGVectorMake(0, 1)];
[_animator addBehavior:_collision];
[_animator addBehavior:_gravity];
}
これがWebサービスコードです
-
(IBAction) saveStory
{
Story *story = [[Story alloc] init];
story.title = self.titleTextField.text;
story.abstract = self.abstractTextView.text;
[[StoryHTTPClient sharedClient] createStory:story success:^(NSURLSessionDataTask *task, id responseObject) {
// success
[_animator addBehavior:_gravity];
[_animator addBehavior:_push]; // apply push to that gravity will kick off
} failure:^(NSURLSessionDataTask *task, NSError *error) {
// failure
}];
}
成功ブロック内に _gravity ビヘイビアーを追加し、_push ビヘイビアーを適用して開始します。しかし、何も起こりません。私は何を間違っていますか?