Tôi đang sử dụng lớp con tùy chỉnh UIGestureRecognizer
để theo dõi cử chỉ trên lớp InfoView
của mình. Lớp InfoView
là chế độ xem phụ của lớp phụ UITableViewCell
được gọi là InfoCell
.UIGestureBộ lọc ngăn chặn nhận dạng bảng di chuyển
Tôi đã thêm trình nhận dạng cử chỉ vào chế độ xem gốc của mình (chế độ xem gốc của mọi thứ khác trên màn hình, vì mục đích của trình nhận dạng cử chỉ tùy chỉnh của tôi là cho phép kéo InfoCell
lượt xem giữa các bảng). Bây giờ, tất cả mọi thứ hoạt động như nó nên ngoại trừ một điều. Tôi đang sử dụng đoạn mã sau vào UIGestureRecognizer
lớp con của tôi để phát hiện chạm trên InfoView
xem:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *touchView = [[touches anyObject] view];
if ([touchView isKindOfClass:[InfoView class]]) {
// Do stuff
}
Vấn đề ở đây là rằng chạm vào đối tượng InfoView
đang bị chặn, do đó họ không được chuyển tiếp đến UITableView
chứa InfoCell
, là chế độ xem gốc của số InfoView
. Điều này có nghĩa là tôi không còn có thể cuộn chế độ xem bảng bằng cách kéo trên chế độ xem InfoView
, đây là vấn đề vì InfoView
bao gồm toàn bộ InfoCell
.
Có cách nào tôi có thể chuyển tiếp các lần chạm vào chế độ xem bảng để có thể cuộn không? Tôi đã thử một loạt các thứ đã:
[super touchesBegan:touches withEvent:event];
[touchView.superview.superview touchesBegan:touches withEvent:event];
(touchView.superview.superview
được một tham chiếu đến mẹ UITableView
)
Nhưng không có gì đã làm việc cho đến nay. Ngoài ra, các cancelsTouchesInView
thích hợp của tôi UIGestureRecognizer
được thiết lập để NO
, do đó, không can thiệp với các chạm.
Trợ giúp được đánh giá cao. Cảm ơn!
này điều cố định đối với tôi khi tôi đã có cùng một vấn đề, nhờ –
Tôi đã đập đầu tôi vào tường trên thế này. Cảm ơn ! : D – Legolas