2012-06-20 17 views
8

Tôi có một UIView tùy chỉnh mà thực hiện hitTest: withEvent:hitTest: withEvent: UIEvent allTouches trống

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    .... some code .... 

    int x = 0; 
    x= [[event allTouches] count]; 
    return [super hitTest:point withEvent:event]; 
} 

Vấn đề là x luôn luôn là 0. Tôi có phải khai API khác hoặc cấu hình UIView để bắt đầu nhận được chạm?

Tôi chỉ cần nó để phân biệt giữa khởi động/di chuyển và kết thúc.

Cảm ơn Jamil

+0

Điều gì được hiển thị bởi 'NSLog (@" Sự kiện:% @ ", sự kiện);'? –

+0

sự kiện: timestamp: 0 chạm: {( )} sự kiện: timestamp: 0 chạm: {( )} sự kiện: timestamp: 248.999 chạm: { ( )} – Jamil

+0

@PhillipMills hitTest được gọi là ba lần với nhật ký ở trên – Jamil

Trả lời

-3

Hãy thử điều này

yourView.userInteractionEnabled = YES; 

iOs cung cấp khả năng để vô hiệu hóa các tương tác người dùng trong hệ thống phân cấp xem. Được nói rằng trong chuỗi sự kiện trên iOS, có thể bỏ qua sự kiện chạm ở chế độ xem tức thì nhất trong ngăn xếp chế độ xem và sau đó chế độ xem tiếp theo trong hệ thống phân cấp sẽ cố gắng chịu trách nhiệm trả lời tương tác.

Được nói trước đó có thể xảy ra rằng chế độ xem phản hồi tương tác của người dùng sẽ được đặt thành KHÔNG, vì vậy chế độ xem tiếp theo trong cấu trúc phân cấp sẽ phản hồi sự kiện. Đây có thể là lý do tại sao nó không hoạt động cho bạn.

+0

Tại sao? Tại sao anh ta nên thử cái này? Chỉnh sửa câu trả lời của bạn để có nhiều thông tin hơn. – CodaFi

+0

Hoàn thành hy vọng nó rõ ràng hơn xin lỗi về điều đó – artud2000

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