[英]UIKit Dynamics doesn't allow me to animate a UIView's centre
我有一個UIView
附加到UICollisionBehavior
。 當嘗試在屏幕上輕按一個新位置時,我正在嘗試設置其中心的動畫,但是使用此代碼塊似乎無法做到這一點:
[UIView animateWithDuration:0.7f
delay:0.0f
options:UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionBeginFromCurrentState
animations:^{
[self.mainCharacter setCenter:location];
}
completion:nil];
誰能建議一種更UIKitDynamics友好的方式來做到這一點?
謝謝。
UPDATE
因此,我的問題的第一部分類似於發布的問題,並且可能是重復的,但是,盡管從技術上講,它解決了該問題的第一部分中的問題,但似乎確實干擾了UICollisionBehavior
碰撞測試。
這個問題的第二部分是詢問是否有更好的方法可以做到這一點。 我以為這將有可能加快UIDynamicItem
在使用在給定時間的速度UIPushBehavior
,但它似乎是不變的。
任何人都可以推薦如何使用UIPushBehavior
來完成上述操作嗎?
在UIKit Dynamics中,當您要動畫化更改中心時,可以將UISnapBehavior
添加到UIDynamicAnimator
(首先刪除所有先前的捕捉行為)。 例如,為UISnapBehavior
創建一個屬性,然后您的輕UISnapBehavior
手勢識別器可以將其捕捉到該點(以紀念UICollisionBehavior
),如下所示:
- (void)handleTap:(UITapGestureRecognizer *)gesture
{
if (self.snap)
[self.animator removeBehavior:self.snap];
CGPoint point = [gesture locationInView:gesture.view];
UISnapBehavior *snap = [[UISnapBehavior alloc] initWithItem:self.viewToAnimate snapToPoint:point];
[self.animator addBehavior:snap];
self.snap = snap;
}
您可以通過調整UISnapBehavior
的damping
屬性來控制“ UISnapBehavior
。 如果您不喜歡它在捕捉時旋轉視圖,還可以添加一個UIDynamicItemBehavior
allowsRotation
設置為NO
allowsRotation
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.