2014-09-29 27 views
7

Tôi là người mới sử dụng iOS và tôi muốn biết cách phát hiện khi người dùng cuộn xuống và chạm vào cuối UITableView để tôi có thể tải dữ liệu mới vào bảng.Cuộn vô hạn trên iOS với Swift

Tôi cũng muốn biết phương pháp như vậy nên được triển khai ở đâu (lớp của bảng điều khiển hoặc bộ điều khiển chế độ xem trong đó chế độ xem bảng này tồn tại) Chúc mừng!

Trả lời

14

Bạn có thể sử dụng -(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath đến và kiểm tra xem ô cuối cùng sẽ được hiển thị trong nguồn dữ liệu của TableView.

+4

Công trình này! [Ở đây] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/index.html#//apple_ref/occ/intfm/UITableViewDelegate/tableView:willDisplayCell:forRowAtIndexPath :) là nhanh chóng mã cho điều đó. Cảm ơn! –

+0

nó yêu cầu mã nhanh: D – botbot

+0

Tôi đã thêm [câu trả lời ở đây] (http://stackoverflow.com/a/42902171/882630) cho biết điều này trong Swift – lukkea

4

iOS 'TableViewController tự động xử lý điều đó. Nó hỏi nguồn dữ liệu của nó chỉ dành cho các hàng hiện thời hiển thị của bảng (tableview.cellForRowAtIndexPath)

Xem tài liệu cho các UITableViewDatasource Protocol Reference

3

Nếu bạn đã có "tập dữ liệu đã biết" (như trong, bạn không cần thực hiện cuộc gọi mạng để tìm nạp dữ liệu mới), sau đó như @zizoft cho biết, nó sẽ được xử lý tự động trong tableview.cellForRowAtIndexPath

Nếu, tuy nhiên, bạn có "tập dữ liệu không xác định", (như trong, bạn sẽ cần phải kéo dữ liệu xuống từ internet), bạn sẽ cần phải làm điều gì đó thú vị hơn một chút - đề xuất của @ ansible sẽ phù hợp trong trường hợp đó.

+0

Tôi có một tập dữ liệu không xác định, tôi phải tìm nạp dữ liệu từ máy chủ. Về cơ bản tôi muốn một cái gì đó giống như News Feed của Facebook, nơi bạn di chuyển và khi bạn đạt đến dưới cùng của News Feed một yêu cầu được thực hiện và nhiều "câu chuyện" được nối thêm. Tôi sẽ cần mã Swift, không phải mã Objective-C. :) –

+1

Tôi chưa thực hiện nhiều Swift, nhưng tôi nghĩ bạn sẽ sử dụng cùng một API trong Swift giống như trong Objective-C. – ansible

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