Trong iOS có cách nào để ngăn không cho UIView chứa nhiều nút (anh chị em) khỏi bị chạm đồng thời không? Ví dụ: hai nút không chồng chéo cạnh nhau có thể được nhấn cùng lúc với hai lần chạm.Ngăn không cho chạm nhiều nút cùng một lúc
33
A
Trả lời
90
Đặt UIView.exclusiveTouch.
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)
}
}
}
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
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
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