簡體   English   中英

UIKit Dynamics不允許我為UIView的中心設置動畫

[英]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;
}

您可以通過調整UISnapBehaviordamping屬性來控制“ UISnapBehavior 如果您不喜歡它在捕捉時旋轉視圖,還可以添加一個UIDynamicItemBehavior allowsRotation設置為NO allowsRotation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM