Tôi muốn phát hiện vị trí cảm ứng (ban đầu) trong UIScrollView của tôi khi người dùng bắt đầu kéo. Tôi đã googled vấn đề này và nhiều người dường như đấu tranh với vấn đề này rất. Bây giờ, trong khi tôi vẫn không thể quấn đầu của tôi xung quanh lý do tại sao Apple sẽ không cho phép người dùng truy cập thông tin liên lạc trong chế độ xem cuộn, tôi không thể không tự tìm ra giải pháp. Tuy nhiên tất cả cố gắng của tôi đều thất bại, vì vậy tôi muốn hỏi bạn.Phát hiện vị trí cảm ứng trên UIScrollView?
Dưới đây là những gì tôi nghĩ sẽ làm việc:
tôi thiết lập một UIPanGestureRecognizer như thế này trong lớp con UIScrollView của tôi và thêm nó vào recognizers cử chỉ của nó:
UIPanGestureRecognizer *tapDrag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(touchedAndDragged:)];
tapDrag.cancelsTouchesInView = NO;
tapDrag.delegate = self;
[self addGestureRecognizer:tapDrag];
Và phương pháp tương ứng:
-(void)touchedAndDragged:(UIPanGestureRecognizer*)t{
CGPoint loc = [t locationInView:self];
//do something with location (that is exactly what I need)
//...
//Now DISABLE and forward touches to scroll view, so that it scrolls normally
t.enabled = NO;
/****
?????
*****/
}
Như được chỉ ra bởi các bình luận, tôi muốn vô hiệu hóa cử chỉ pan sau khi tôi có điểm và sau đó vô hiệu hóa trình nhận dạng (trong khi STILL kéo!) và "chuyển" các lần chạm vào chế độ xem cuộn của tôi để người dùng có thể cuộn bình thường. Điều đó có khả thi không? Có giải pháp nào khác không?
là nó có thể phát hiện nếu cuộn này là tại một số vị trí xx sau đó scrollView di chuyển hoặc liên lạc sẽ không được kích hoạt? giả sử tôi có hai chế độ xem, bản đồ và một bảng điều khiển bên dưới bản đồ trong chế độ xem cuộn, tôi không muốn chế độ xem cuộn để kích hoạt đại biểu của nó khi tôi chạm vào bản đồ và bản đồ –