2013-07-25 25 views
6

Tôi đang tạo một số ngẫu nhiên UIViews tùy chỉnh của cùng một lớp và tôi đang thêm chúng vào chế độ xem của UIViewController. Tôi gán cho họ một UITapGestureRecognizer, nhưng tôi dường như không thể thực hiện các công việc liên lạc độc quyền:Đặt liên lạc độc quyền trên nhiều UIViews của cùng một lớp

for (int i = 0; i <= n; i++) { 
    ICCatalogProductView *catalogProductView; 
    catalogProductView = [[ICCatalogProductView alloc] init]; 
    [self.view addSubview:catalogProductView] 
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(testTouch)]; 
    [catalogProductView addGestureRecognizer:tapGesture]; 
    [catalogProductView setExclusiveTouch:YES]; 
} 

Nếu tôi khai thác UIViews đồng loạt, phương pháp này được gọi là hai lần (không phải là hành vi của tôi muốn). Có phương pháp thanh lịch nào để giải quyết vấn đề này hay bất kỳ phương pháp nào không?

+0

điều bạn thực sự muốn trên tab đồng thời. Xin hãy chỉ ra cụ thể. – Suryakant

+0

kiểm tra điều này: -http: //stackoverflow.com/questions/11919624/ios-setting-exclusive-touch-to-all-buttons-in-a-view –

+0

Tôi muốn chỉ một lần chạm để có thể, cùng một hành vi bạn sẽ có khi có 2 UIButtons với .exclusiveTouch = YES –

Trả lời

1

Từ Tài liệu của Apple:

exclusiveTouch chỉ ngăn chạm trong quan điểm khác trong suốt thời gian ở mà có một cảm ứng tích cực trong giao diện cảm ứng độc đáo. Tức là, nếu bạn đặt ngón tay xuống trong một lần chạm chạm độc quyền sẽ không bắt đầu trong các chế độ xem khác cho đến khi bạn nhấc ngón tay đầu tiên lên. Nó không ngăn chặn chạm từ đầu trong các chế độ xem khác nếu hiện tại không có chạm nào trong chế độ xem độc quyềnChạm.

Để thực sự làm cho quan điểm này là điều duy nhất trên màn hình có thể nhận chạm bạn cần phải thể thêm quan điểm khác trên đầu trang của tất cả mọi thứ khác để nắm bắt những phần còn lại của chạm, hoặc phân lớp một cái nhìn ở đâu đó trong của bạn hệ thống phân cấp (hoặc chính UIWindow của bạn) và ghi đè hitTest: withEvent: để luôn trả về chế độ xem văn bản khi hiển thị, hoặc để trả lại số không cho chạm không ở chế độ xem văn bản của bạn.

có nghĩa là bộ duy nhất được đặt độc quyền trong một chế độ xem của bạn, không phải nếu bạn đang chạm vào thứ gì đó bên ngoài chế độ xem của mình.

+0

Cả UIViews mà tôi đang chạm đều có độc quyềnChiết lập YES, nhưng việc chạm đồng thời là có thể. –

+0

Về cơ bản, chạm vào bất kỳ chế độ xem nào khác ngoài ActivityView khiến activityView Biến mất, bạn cần xử lý nó bằng Chế độ xem hoạt động. Thiên Chúa cấm, nhưng có lẽ bạn sẽ phải tạo ra hai quan điểm riêng biệt. Nó có một cái gì đó để làm với giả sử trả lời đầu tiên. –

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