簡體   English   中英

一次由UILongPressGestureRecognizer觸發拖動時,如何防止UIView“跳動”?

[英]How do I keep my UIView from “jumping” when dragging it once triggered by UILongPressGestureRecognizer?

預期功能:

長按一個按鈕后,可以在屏幕上拖動它。

跳蟲:

最初開始拖動按鈕時,其中心會“跳轉”到CGPoint,該CGPoint記錄了我的初始單擊以觸發長按。 例如,我長按一下其右上角的按鈕,並在按住它開始拖動光標后,該按鈕將跳至該“右上”位置。

跳轉之后-所有拖動都可以了。

碼:

- (void)longPress:(UILongPressGestureRecognizer*)receivedGesture
{
   if (receivedGesture.state == UIGestureRecognizerStateChanged)
   {
       CGPoint translation = [receivedGesture locationInView:self.scrollView];
       pannedBadge.center = translation;
   }
} 

終極問題:

這里有什么解決方案? 如何使初始拖動將按鈕從其原始中心移出?

謝謝!

通常,要使視圖可拖動,我要做的是檢測觸摸的起點,然后獲取其移動(觸摸)的差異,然后按如下所示設置視圖的中心:我沒有將其設置為絕對觸摸,但我使用剛剛檢測到的觸摸移動來相對設置它。

原因是您的翻譯點是在詢問手勢在視圖中的位置,而不是其上方的視圖中心。 如果您將pannedBadge.center啟動為按鈕的中心,那應該可以。 希望這可以幫助!

暫無
暫無

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

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