[英]How to remove UIView after UIGravityBehavior has moved it off screen?
[英]How to stop something with a UIGravityBehavior?
我有一些使用UIDynamicAnimation的UIViews,特別是UIGravityBehavior。 我需要知道如何讓它們隨時停止和啟動。
我一直在嘗試手動設置行為屬性的各種組合,比如將重力設置為0,0,或者將幅度和向量分別設置為0,或者甚至將所有加上角度的組合設置為0 ,事情就是繼續前進。
我可以將它們移動到不同的位置,但它們只保留了之前的動力並繼續前進。
我能想到的最后一件事是完全從行為中刪除視圖,但我需要停止並開始很多不同的時間,這看起來非常笨重。 這是唯一的方法嗎?
方法:
[aView removeMotionEffect:effect];
優化,所以你不應該害怕執行它。 我的猜測是“玩”他們的矢量和引力,而管理大量的視圖將比解除他們的行為困難得多。
你可以使用這個片段:
- (void)removeMotionEffectsFromViews:(NSArray *)views
{
for (id obj in views) {
if ([obj isKindOfClass:[UIView class]]) {
UIView *aView = (UIView *)obj;
for (UIMotionEffect *effect in [aView motionEffects]) {
[aView removeMotionEffect:effect];
}
}
}
[self.animator /*UIDynamicAnimator*/ removeAllBehaviors];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.