ビューを「バースト」させるカスタム UIDynamicBehavior を実装したいと思います。そのためには、フェードアウトして、サイズを 2 倍に拡大する必要があります。
ビューのalpha
andbounds
をaction
ブロックに設定することでこれを行います。しかし、アクション ブロックが呼び出される頻度を知るにはどうすればよいでしょうか。ドキュメントには「各ティックで」と書かれていますが、いくつですか?
カウンターを追加しました。他のアニメーションがない場合、ブロックは 30 回呼び出されます。わずかな重力と動的動作で、500 回呼び出されます。
UIDynamicAnimator
また、その動作がいつ「完了」して物を動かしているのかを がどのように知っているのかわかりません。誰でもこれに光を当てることができますか?
以下のコードは機能する場合もありますが、ビューが完全にアニメーション化される前に動作が停止する場合もあります (つまり、まだ表示されている)。
self.action = ^{
static NSInteger count = 0;
NSLog(@"animation tick: %d", count);
count++;
UIView *view = (UIView*)[weakSelf.items lastObject];
view.alpha = view.alpha - 0.1;
CGRect bounds = view.bounds;
bounds.size.width += 1;
bounds.size.height += 1;
view.bounds = bounds;
};