Nhập <UIKit/UIGestureRecognizerSubclass.h>
và đặt thủ công thuộc tính state
phù hợp với chuỗi trạng thái bạn cần mô phỏng. Điều này sẽ làm cho các cặp mục tiêu/hành động được thêm vào được gọi. Sau mỗi lần đặt trạng thái theo cách thủ công, bạn phải để chạy vòng lặp chạy để các tin nhắn được gửi đi.
Đối với UILongPressGestureRecognizer
, để có được đúng trình tự của các quốc gia như được tìm thấy trong một chuỗi thực tế, 'liên lạc, giữ, kéo, phát hành' của các cử chỉ, tôi đã viết đoạn mã sau vào một lớp con UIViewController
bên viewDidLoad
:.
UILongPressGestureRecognizer *r = [[UILongPressGestureRecognizer alloc] init];
[self.view addGestureRecognizer:r];
[r addTarget:self action:@selector(recognize:)];
r.state = UIGestureRecognizerStateBegan;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
r.state = UIGestureRecognizerStateChanged;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
r.state = UIGestureRecognizerStateEnded;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
[r reset];
Tôi tưởng tượng điều này sẽ rất nguy hiểm trong mã sản xuất (bạn có thể muốn sau đó gọi reset
nhưng tôi không tìm thấy sự khác biệt giữa việc thực hiện hay không trong thử nghiệm của mình), nhưng trường hợp sử dụng của bạn là kiểm tra tự động để xác minh rằng các mục tiêu và hành động đã được đặt chính xác, điều này có thể đáp ứng nhu cầu của bạn.
Nguồn
2013-01-19 19:31:10
Bạn có ý gì khi "nhắn tin tới một đối tượng"? – iProgrammed
@iProgrammed Vui lòng xem câu hỏi đã được viết lại của tôi để làm rõ. –