Saya mendeteksi apakah pengguna telah menekan selama 2 detik:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 2.0;
[self addGestureRecognizer:longPress];
[longPress release];
Inilah cara saya menangani pers lama:
-(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer{
NSLog(@"double oo");
}
Teks "dua kali lipat" akan dicetak dua kali ketika saya menekan lebih dari 2 detik. Kenapa ini? Bagaimana saya bisa memperbaikinya?
sumber
Untuk memeriksa keadaan UILongPressGestureRecognizer cukup tambahkan pernyataan if pada metode pemilih:
sumber
Anda perlu memeriksa status yang benar, karena ada perilaku yang berbeda untuk setiap negara. Kemungkinan besar Anda akan membutuhkan
UIGestureRecognizerStateBegan
negara denganUILongPressGestureRecognizer
....
sumber
Coba saja ini:
Objektif-C
Swift 2.2:
sumber
Berikut cara mengatasinya di Swift:
sumber
Swift 3.0:
sumber
penangan isyarat Anda menerima panggilan untuk setiap kondisi gerakan. jadi Anda perlu memberi tanda centang untuk setiap negara bagian dan memasukkan kode Anda dalam kondisi yang diperlukan.
Seseorang harus lebih suka menggunakan sakelar alih-alih-jika:
sumber