2010-08-13 6 views

Trả lời

90

Đặt UIView.exclusiveTouch.

+0

Tuyệt vời! Tại sao tôi không nghĩ về điều đó cho các nút mà tôi không biết ?! – pryomoax

+4

Hoàn hảo! giống như kho báu ẩn giấu, không bao giờ biết về tài sản này, cảm ơn rất nhiều. – RVN

+8

xin lưu ý để đặt nó trên mỗi "UIButton"! KHÔNG phải là các UIView các nút đó là trong :) (Thiết lập trong tất cả các subviews của UIView sẽ làm) như thế này -> [self.controlView.subviews makeObjectsPerformSelector: @selector (setExclusiveTouch :) withObject: [NSNumber numberWithBool: YES] ]; – Hlung

11

Bạn cũng có thể sử dụng phương thức bên dưới. Nếu bạn có hai nút hoặc nhiều hơn, để ngăn chặn nhiều lần một lúc.

cho ví dụ,

[Button1 setExclusiveTouch:YES]; 

[Button2 setExclusiveTouch:YES]; 

Set phương pháp này trong thư mục viewDidLoad hoặc viewWillAppear

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

Bạn cần phải tìm tất cả các nút trên quan điểm đó và thiết lập các "exclusiveTouch" tài sản để đúng để ngăn đa chạm cùng một lúc.

func exclusiveTouchForButtons(view: UIView) { 
    for cmp in view.subviews { 
     if let cmpButton = cmp as? UIButton { 
      cmpButton.exclusiveTouch = true 
     } else { 
      exclusiveTouchForButtons(cmp) 
     } 
    } 
}