我很困惑LongPressGestureRecognizer.I放置其中的一個滾動視圖,但它工作兩次。當我舉起我的手指,添加到它的方法再次調用。我想知道它只有第一次打電話。我該怎麼辦?任何幫助將不勝感激,謝謝。長按手勢識別器發射兩次
-3
A
回答
2
先來看看蘋果公司的文檔不得不說一下吧: - 。
「長按手勢是連續手勢在指定的時間段(minimumPressDuration)中按下允許的手指的數量(numberOfTouchesRequired)並且觸摸不超過允許的移動範圍(allowableMovement)時,開始(UIGestureRecognizerStateBegan)當手勢識別器轉換到更改狀態時任何手指移動,當任何手指擡起時它結束(UIGestureRecognizerStateEnded)。「
- (void)LongPress:(UILongPressGestureRecognizer*)sender {
if (sender.state == UIGestureRecognizerStateBegan){
NSLog(@"UIGestureRecognizerStateBegan.");
//in your case add your functionality over here
}
else if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"UIGestureRecognizerStateEnded");
//if you want to add some more functionality when gesture got ended.
}
}
1
UILongPressGestureRecognizer不像UITapGestureRecognizer一樣。它包含一些狀態。
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height * 2);
[self.view addSubview:scrollView];
UILongPressGestureRecognizer *lpGes = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(lpHandler:)];
[scrollView addGestureRecognizer:lpGes];
}
- (void)lpHandler:(UILongPressGestureRecognizer *)lpGes
{
switch (lpGes.state) {
case UIGestureRecognizerStateBegan:
NSLog(@"UILongPressGestureRecognizer: began");
break;
case UIGestureRecognizerStateEnded:
NSLog(@"UILongPressGestureRecognizer: ended");
break;
default:
break;
}
}
對於上面的代碼,你將得到2日誌:
2015-08-28 12:22:39.084 aaaaa[50704:2339282] UILongPressGestureRecognizer: began
2015-08-28 12:22:40.687 aaaaa[50704:2339282] UILongPressGestureRecognizer: ended
相關問題
- 1. 僅在長按識別器發射後才執行平移手勢識別器
- 2. 自長按手勢識別
- 3. UIButton上的長按手勢識別器?
- 4. UIAlertView警報在長按手勢識別器內重複三次
- 5. Swift:長按手勢識別器 - 檢測水龍頭和長按
- 6. 長按手勢識別問題
- 7. 問題在長按手勢識別
- 8. iOS自定義手勢識別器測量長按的長度
- 9. 拖動手勢識別器干擾滑動手勢識別器
- 10. 長按手勢識別器只在手指擡起時被觸發
- 11. UIButton檢測按住「手勢識別器」?
- 12. 如何禁用UITextField和UISearchBar中的長按手勢識別器?
- 13. 長按手勢識別器在UITableView中滾動干擾
- 14. 用於UICollectionView的長按水龍頭手勢識別器Objective-c
- 15. 用註釋針創建長按手勢識別器
- 16. 快速攔截(或強制停止)長按手勢識別器
- 17. 手勢識別器問題
- 18. cocos2d-iOS - 手勢識別器
- 19. 點擊手勢識別器
- 20. 添加手勢識別器
- 21. 手勢識別器和TableView
- 22. UIPageController和手勢識別器
- 23. 手勢識別器和塊
- 24. Swipe手勢識別器swift
- 25. 捏捏手勢識別器
- 26. SpriteKit手勢識別器
- 27. UICollectionView與手勢識別器
- 28. 長手勢識別添加到hostView CorePlot
- 29. 長按識別手勢通過按鈕 - 斯威夫特3
- 30. iOS:按住按鈕並識別手勢
顯示您的代碼以創建和應用手勢識別器和識別器處理程序的代碼。 – rmaddy
是的,當你開始按下時有兩個叫做一個,當它結束時有兩個叫做一個 –