2013-04-14 15 views
5

Đây là một vấn đề đơn giản, nhưng khó giải quyết.ngăn các nút không bị nhấn đồng thời

Tôi có hai nút thực hiện chức năng tương tự.

Tôi đã đặt các sự kiện chạm khác nhau cho các nút. Mặc dù điều này giúp, bạn vẫn có thể nhấn đồng thời. Trên một kết nối chậm, nó sẽ dễ dàng hơn.

[vote1Btn addTarget:self action:@selector(voteUp:) forControlEvents:UIControlEventTouchUpInside]; 
[vote2Btn addTarget:self action:@selector(voteUp:) forControlEvents:UIControlEventTouchDown]; 
+3

Chức năng của nút này là gì và tại sao nó được gắn với "kết nối chậm"? – J2theC

+1

Có vẻ như bạn có thể đang truy cập mạng trên luồng chính - điều đó thật tệ. – rmaddy

+2

Tại sao bạn sử dụng chạm vào nút thứ hai? Nếu bạn sử dụng chạm vào bên trong trên cả hai, bạn sẽ ổn thôi. – Rob

Trả lời

21

Đặt thuộc tính exclusiveTouch của cả hai nút thành CÓ.

Nếu điều đó không đủ, mỗi nút gọi đối tượng ứng dụng được chia sẻ beginIgnoringInteractionEvents khi hoạt động của nó bắt đầu và gọi endIgnoringInteractionEvents khi hoạt động của nó kết thúc.

+0

Nếu tôi có thể bỏ phiếu câu trả lời này nhiều hơn tôi sẽ - những gì một tiết kiệm thời gian! – chrysAllwood

+0

có vẻ như exclusiveTouch không hoạt động trong iOS9? –

+0

Hoạt động như một nét duyên dáng trong iOS10! – ronatory

0
for(UIView* v in self.view.subviews) 
{ 
    if([v isKindOfClass:[UIButton class]]) 
    { 
     UIButton* btn = (UIButton*)v; 
     [yourButton setExclusiveTouch:YES]; 
    } 
} 

điều này sẽ hoạt động!

Các vấn đề liên quan