Tôi có UIView bao gồm tất cả UITableView. UIView đang sử dụng trình nhận dạng cử chỉ để kiểm soát những gì bảng hiển thị. Tôi vẫn cần các cuộn hàng và cuộn UITableView dọc. Làm cách nào để chuyển các bảng này vào bảng từ trình nhận dạng cử chỉ?Trình nhận dạng cử chỉ và Bảng nhìn
Trả lời
Gán cử chỉ của bạn để xem bảng và bảng sẽ chăm sóc nó:
UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSwipeFrom:)];
[gesture setDirection:
(UISwipeGestureRecognizerDirectionLeft
|UISwipeGestureRecognizerDirectionRight)];
[tableView addGestureRecognizer:gesture];
[gesture release];
Sau đó, trong phương pháp hành động cử chỉ của bạn, hành động dựa trên sự chỉ đạo:
- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) {
[self moveLeftColumnButtonPressed:nil];
}
else if (recognizer.direction == UISwipeGestureRecognizerDirectionRight) {
[self moveRightColumnButtonPressed:nil];
}
}
bảng sẽ chỉ truyền cho bạn những cử chỉ bạn đã yêu cầu sau khi xử lý chúng trong nội bộ.
này là câu trả lời tuyệt vời. Nhưng bạn có thể vui lòng cho tôi biết làm thế nào để biết tableview indexPath trong phương thức handleSwipeFrom? – dinesh
Điều này sẽ không hoạt động - thuộc tính định hướng trên UISwipeGestureRecognizer cho biết hướng nào CÓ THỂ được nhận dạng (trong trường hợp này là trái VÀ phải) chứ không phải hướng WAS bị quét. Bạn cần phải tách riêng các trình nhận dạng cử chỉ –
Có, recognizer.direction sẽ luôn là 3 và không bao giờ khớp. Điều này được cho là một lỗi: http://stackoverflow.com/questions/3319209/setting-direction-for-uiswipegesturerecognizer – Symmetric
Nếu bạn cần biết indexPath của tế bào của bạn:
- (void)handleSwipeFrom:(UIGestureRecognizer *)recognizer {
CGPoint swipeLocation = [recognizer locationInView:self.tableView];
NSIndexPath *swipedIndexPath = [self.tableView indexPathForRowAtPoint:swipeLocation];
UITableViewCell *swipedCell = [self.tableView cellForRowAtIndexPath:swipedIndexPath];
}
này trước đây đã trả lời trong UIGestureRecognizer and UITableViewCell issue.
Tôi đã thử đề xuất của Rob Bonner và nó hoạt động rất tốt. cảm ơn bạn.
Nhưng, trong trường hợp của tôi, có vấn đề với nhận dạng hướng. (recognizer.direction luôn luôn tham khảo 3) Tôi đang sử dụng SDK IOS5 và Xcode 4.
Có vẻ như do "[seture setDirection: (left | right)]" Tôi nghĩ vậy. (vì kết quả tính toán được xác định trước (dir left | dir right) là 3)
Vì vậy, nếu ai đó gặp vấn đề như tôi và muốn nhận dạng vuốt sang trái và phải một cách riêng biệt, hãy gán hai công cụ nhận dạng bảng với các hướng khác nhau.
Như thế này:
UISwipeGestureRecognizer *swipeLeftGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleSwipeLeft:)];
[swipeLeftGesture setDirection: UISwipeGestureRecognizerDirectionLeft];
UISwipeGestureRecognizer *swipeRightGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleSwipeRight:)];
[swipeRightGesture setDirection: UISwipeGestureRecognizerDirectionRight];
[tableView addGestureRecognizer:swipeLeftGesture];
[tableView addGestureRecognizer:swipeRightGesture];
và cử chỉ hành động dưới đây:
- (void)handleSwipeLeft:(UISwipeGestureRecognizer *)recognizer {
[self moveLeftColumnButtonPressed:nil];
}
- (void)handleSwipeRight:(UISwipeGestureRecognizer *)recognizer {
[self moveRightColumnButtonPressed:nil];
}
tôi mã hóa với tính năng ARC sau đó nếu bạn không sử dụng ARC, thêm mã phát hành.
PS: tiếng Anh của tôi không phải là quá tốt, vì vậy nếu có bất kỳ lỗi sentential, sửa chữa sẽ rất vui :)
- 1. Làm cách nào để phát hiện cử chỉ hình tròn qua Trình nhận dạng cử chỉ?
- 2. cách xóa hoàn toàn trình nhận dạng cử chỉ
- 3. Trình nhận dạng cử chỉ đồng thời trong SDK SDK
- 4. Trình nhận dạng cử chỉ (vuốt) trên UIImageView
- 5. Mất nhận dạng cử chỉ trong UIPopoverController
- 6. Nhận dạng cử chỉ Thư viện JavaScript
- 7. Qt, Cử chỉ. TapAndHold và Vuốt không được nhận dạng
- 8. Nhận dạng cử chỉ trên iPad - Trả lời chậm
- 9. Cách thực hiện Nhận dạng cử chỉ bằng Accelerometers
- 10. Tôi có cần phải phát hành trình nhận dạng cử chỉ không?
- 11. Nhận dạng cử chỉ sử dụng mô hình markov ẩn
- 12. Trình nhận dạng cử chỉ không hoạt động - UIImageView bên trong một UIScrollView
- 13. Cách ưu tiên nhận dạng cử chỉ và chạm vào UIView
- 14. Nhận dạng cử chỉ OpenCV (cho trình phát đa phương tiện)
- 15. Tôi làm cách nào để triển khai trình nhận dạng cử chỉ trong OS X?
- 16. Tắt trình nghe cử chỉ trên DrawerLayout
- 17. Gửi đối số cho bộ chọn khởi chạy trình nhận dạng cử chỉ?
- 18. UIScrollView ghi đè nhận dạng cử chỉ pan của tiểu sử của tôi
- 19. Cử chỉ và Chuỗi phản hồi
- 20. Cử chỉ dọc và ngang trong Android
- 21. iPhone UIView touchesMoved: withEvent: không được gọi trên UIView với bộ nhận dạng cử chỉ
- 22. Có khung công tác Java thuần túy để nhận dạng cử chỉ không?
- 23. cách liệt kê công cụ nhận dạng cử chỉ đang hoạt động?
- 24. Tắt tính năng nhận dạng cử chỉ đa nhiệm trên iOS trong khi chơi trò chơi
- 25. Tại sao cửa hàng nhận dạng cử chỉ mạnh theo mặc định
- 26. Kết hợp cử chỉ nhấn và giữ và kéo cử chỉ cùng
- 27. Cử chỉ nâng cao của iOS: Nhận hướng swipe Vector
- 28. Tính năng nhận dạng cử chỉ hoạt động như thế nào?
- 29. Cách nhận dạng cử chỉ chạm khi chế độ xem đang hoạt ảnh
- 30. Trạng thái hiện tại của nhận dạng cử chỉ tay OpenCV?
Tôi tin "[tablView cử chỉ]" nên được "[yourTableView addGestureRecognizer: cử chỉ]" –