2012-06-11 29 views
6

Tôi đã tạo một lớp con tùy chỉnh của UIView vì tôi cần phải ghi đè lên phương thức drawRect. Tôi cố gắng thêm một UITapGestureRecognizer vào nó, nhưng điều này không làm việc cho tôi. Ở đây, quy tắc ứng ViewController tôi:UITapGestureRecognizer không kích hoạt trên UIView Subclass

MyCustomView *customView = [[MyCustomView alloc] initWithFrame:CGRectFrame(0, 30, 30, 30)]; 
[customView setUserInteractionEnabled:YES]; 

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)]; 
[customView addGestureRecognizer:tapGestureRecognizer]; 

Tôi không hiểu tại sao khi tôi chạm vào đối tượng UIView lớp con của tôi, nhận dạng cử chỉ không cháy lên.

Cảm ơn rất nhiều trước!

CỐ ĐỊNH IT OUT!

Chế độ xem của tôi ở chế độ UIImageView và UIImageView không được đặt userInteractionEnabled thành CÓ.

+0

là giới hạn/khung hình chính xác của bạn? – CarlJ

+0

Rõ ràng là có, sublass của tôi là một vòng tròn được vẽ với CoreGraphics. khung là: 10, 30, 30, 30. – Vinestro

+0

Để biết thông tin (nó có thể giúp), mã tôi hiển thị cho bạn là trong phương thức tableView: cellForRowAtIndexPath. Một ý tưởng? – Vinestro

Trả lời

13

CỐ ĐỊNH IT OUT!

Chế độ xem của tôi ở chế độ UIImageView và UIImageView không được đặt userInteractionEnabled thành CÓ.

+0

Điều này đã giúp tôi thậm chí 3 năm sau đó. Cảm ơn! – yeesterbunny

0

Đảm bảo bạn đang hiển thị nó ở đâu đó (addSubview).

+0

Có tôi hiển thị giao diện của tôi. Tôi tạo phương thức addSubview sau khi thêm bộ nhận dạng cử chỉ. – Vinestro

0

Cũng đảm bảo rằng userInteractionEnabled được đặt thành true. Nếu đó là sự thật, hãy đăng mã tạo và móc lên trình nhận dạng cử chỉ.

+0

userInteractionEnabled được đặt thành true. Tôi đã đăng mã trong mã đầu tiên của mình ngay trên đầu chủ đề. Cảm ơn trước – Vinestro

0

Đặt séc UserInteractionEnable true trên subview mà bạn đang thêm và trong phương pháp chọn, làm vượt qua các đối tượng cùng với nó tức là

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething:)]; 

và làm cho các phương pháp chọn như

-(void) doSomething:(UITapGestureRecognizer *)gesture; 

Hãy cho tôi biết nếu bạn vẫn gặp sự cố. Cảm ơn!

+0

Nó chỉ là UIImageView mà tôi thêm subview của tôi không phải là userInteractionEnabled ... Cố định, cảm ơn! – Vinestro

+0

Điều đó thật tuyệt. Bây giờ đừng quên để lại các bài chưa được trả lời hoặc bỏ đánh dấu. Chúc mừng! –

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