2012-12-12 32 views
7

Tôi cần giới hạn việc nảy lại trong một số UIScrollView sao cho bị trả lại như thường lệ ở dưới cùng nhưng không vượt quá X pixel ở trên cùng (phía dưới không quan trọng).Giới hạn phản hồi cho UIScrollview trong iOS

Có cách nào để hạn chế kích thước nảy không? Tôi nghĩ rằng có thể một phương pháp trong đại biểu như vậy chúng tôi scrollViewWillScroll (thay vì scrollViewDidScroll) sẽ cho phép tôi tiêu thụ những sự kiện cuộn di chuyển xa hơn đầu + X nhưng tôi đã không thể tìm thấy một phù hợp cho đến nay.

Bất kỳ manh mối nào?

+0

Tôi có thể hỏi tại sao bạn muốn giảm phản xạ không? –

+0

Xin lỗi vì câu trả lời siêu muộn nhưng có bạn có thể: Tôi đang chơi xung quanh tạo hiệu ứng Parallax với danh sách mặt trước và hình nền. Một cái gì đó tương tự như điều ứng dụng PAth 2.0, nhưng tại một số điểm tôi muốn nảy khác nhau tùy thuộc vào kích thước của hình ảnh trở lại để danh sách chính không bao giờ di chuyển (bị trả lại) đến điểm mà một khoảng cách màu đen được nhìn thấy giữa hình ảnh trở lại và danh sách phía trước. – HiddenDev

Trả lời

13

scrollViewDidScroll: là phương pháp chính xác cho việc này. Đơn giản điều chỉnh contentOffset trong đó.

Ví dụ này sẽ hạn chế sự nảy trên xuống 20 pixel:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y < -20) { 
     scrollView.contentOffset = CGPointMake(0, -20); 
    } 
} 

Lưu ý rằng có một chút của một sự chậm trễ không tự nhiên cho đến khi xem được cuộn lại 0,0 khi lý do thư bị trả lại là một lần vuốt chậm và không phải là thao tác kéo. Nhưng tôi nghĩ rằng không có cách nào để ngăn chặn điều này. Về cơ bản scrollView vẫn bị trả về một cách đầy đủ nhưng nó không hiển thị nó.

+0

Bạn hoàn toàn đúng :) Có lẽ tôi đã làm điều gì đó sai trước đây vì nó không đẹp mắt. – HiddenDev

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