2012-08-08 32 views
6

Tôi có một số scrollview với 5 lượt xem hình ảnh có chiều rộng 88.Cách tạo chế độ xem cuộn vô hạn trong iPhone?

Tôi muốn scrollview để di chuyển đến từng xem hình ảnh (Không Paging)

Tôi muốn làm một scrollview vô hạn trong iPhone có nghĩa là khi nó di chuyển để kéo dài mục nó sẽ hiển thị một mục đầu tiên bên cạnh nó ..

Tôi đã cố gắng bằng cách bù trừ nhưng nó dừng lại khi di chuyển nó bằng cách bù đắp và cũng tôi đã sử dụng đường phố táo cuộn mà không cho phép tôi để ngăn chặn mỗi yếu tố ở trung tâm (giống như Picker xem) ..

+0

là nó sẽ có hoặc không có tương tác người dùng? –

Trả lời

9

Trước hết, tôi khuyên bạn nên sử dụng UITableView để bạn có thể duy trì mức sử dụng bộ nhớ thấp. Một cách tiếp cận mà tôi đã sử dụng thành công trong một dự án như sau:

    1. List item

Duplicate nội dung của các tế bào của bạn, tôi có nghĩa là nếu bạn có 5 mặt hàng theo cách này:

| 1 | 2 | 3 | 4 | 5 |

Bạn nên thêm như nhau (Trong một cái nhìn bảng với cơ thể tái sử dụng mà không phải là một vấn đề lớn) vào cuối của bảng để trông như thế này:

| 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 |

    2.sửa đổi scrollViewDidScroll với các mục sau:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (scrollView == _yourScrollView) { 
     CGFloat currentOffsetX = scrollView.contentOffset.x; 
     CGFloat currentOffSetY = scrollView.contentOffset.y; 
     CGFloat contentHeight = scrollView.contentSize.height; 

     if (currentOffSetY < (contentHeight/6.0f)) { 
      scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY + (contentHeight/2))); 
     } 
     if (currentOffSetY > ((contentHeight * 4)/ 6.0f)) { 
      scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY - (contentHeight/2))); 
     } 
    } 
} 

Mã trên di chuyển vị trí cuộn ở trên cùng nếu bạn gần như đạt đến cuối cùng của cuộn; Hoặc nếu bạn gần như ở trên cùng, hãy di chuyển bạn xuống dưới cùng ...

    3. Đúng vậy.
+2

Giải pháp tuyệt vời. Tuy nhiên có cách nào để bỏ qua 'chớp mắt' này khi bù đắp thay đổi không? – Vive

4

Điều này gây ra cho tôi những vấn đề nghiêm trọng trong một thời gian dài vì vậy tôi thực sự cảm thấy đau đớn của bạn. Tôi thấy kiểm soát này sẽ giải quyết vấn đề của bạn: http://www.cocoacontrols.com/platforms/ios/controls/infinitescrollview

Tôi cũng xem xét chèn chuyển tiếp và cuộn bị vô hiệu hóa để nó trở thành trình chiếu nhưng cả hai cách đều hoạt động.

1

Đây là giải thích ngắn gọn về giải pháp tôi đã sử dụng để thực hiện.

Giả sử bạn có quyền truy cập từ 0 - 9, khi bạn thực hiện chuyển đổi 9 -> 0, bạn thực sự giả mạo 0 khác (gọi 0) sau 9 (trong scrollView), thực hiện chuyển đổi động thành 0 'và hơn là thực hiện chuyển đổi tức thì không hoạt hình thành 0 đứng trên đầu trang của scrollView.

0

Đối với bất kỳ ai đang tìm kiếm giải pháp, bạn cũng có thể thử thư viện này Infinite Scroll Picker tại https://github.com/Seitk/InfiniteScrollPicker/ Về cơ bản là kéo và thả. Tôi đang sử dụng nó trên một dự án và nó hoạt động tuyệt vời.

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