簡體   English   中英

UIButton同時具有Touch Up Inside和Touch Repeat?

[英]UIButton with both Touch Up Inside and Touch Repeat?

讓按鈕同時具有Touch Up Inside動作和Touch Down Repeat動作的最佳方法是什么? 有點像iPhone上的Home按鈕:只需點擊一下即可進入主屏幕,但兩次快速點擊可打開多任務欄。 現在我的按鈕已經連接了兩個方法,但Touch Down Repeat Touch Up Inside方法(不出所料)在Touch Down Repeat發生之前被調用。

我可以提出一些方法來解決這個問題(讓Touch Up Inside方法等待一秒鍾,看看在執行之前是否有另一個點擊,第二個按鈕在第一次點擊后無形地移動到位)等等看起來很糟糕,對性能損失和漏洞持開放態度。 我找到了tapCount屬性,但是它用於UITouch而不是UIButton,所以if([_buttonAddItems tapCount] > 1) {} else if([_buttonAddItems tapCount] == 1) ,這似乎是最有效的方法它,不起作用。

這種事情有最好的做法嗎? 或者,如果沒有,有沒有人有一個首選的方法來完成這項工作?

嘗試斷開按鈕上的兩個觸摸事件,並將兩個輕觸手勢識別器掛鈎。 這是一個答案鏈接 ,解釋了如何設置兩個手勢識別器,以便其中一個識別單擊,另一個識別雙擊:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doSingleTap)];
singleTap.numberOfTapsRequired = 1; 
[myButton addGestureRecognizer:singleTap];

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doDoubleTap)];
doubleTap.numberOfTapsRequired = 2; 
[myButton  addGestureRecognizer:doubleTap];
// This is the "secret sauce":
[singleTap requireGestureRecognizerToFail:doubleTap];

暫無
暫無

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

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