簡體   English   中英

長按手勢識別器問題

[英]Long press gesture recognizer issue

在Interface Builder中,我為MKMapView添加了一個按下手勢識別器。

1秒后發送一個事件(我用它來向地圖添加一個引腳)。 我已經檢查了手勢識別器的“取消觸摸視圖”行為,但我的問題是,一旦識別出長按手勢,如果你將手指放在屏幕上並將其拖動到地圖視圖上,那么事件(很長時間)拖動時會連續發送,好像它實際上是一個拖動手勢識別器,導致我的地圖中添加了幾十個引腳......

我怎樣才能解決這個問題 ?

謝謝。

根據文件

長按手勢是連續的。 當指定時間段(minimumPressDuration)按下允許的手指數(numberOfTouchesRequired)並且觸摸不超出允許的移動范圍(allowableMovement)時,手勢開始(UIGestureRecognizerStateBegan)。 每當手指移動時手勢識別器轉換到改變狀態 ,並且當任何手指被抬起時, 手勢識別器結束(UIGestureRecognizerStateEnded)。

突出重點。

我相信你可能沒有在手勢識別器的委托方法中過濾狀態。

你需要這樣的東西: -

- (void)longPressGestureRecognizerStateChanged:(UIGestureRecognizer *)recognizer {
    if (recognizer.state == UIGestureRecognizerStateBegan) {
       // do your stuff...
    }
}

暫無
暫無

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

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