2009-12-03 17 views
7

Tôi có một chế độ xem bảng tôi muốn tùy chỉnh dựa trên số hàng có.Làm cách nào để có số lượng Hàng từ một UITableView

Nếu không có hàng, tôi muốn hình nền nhắc người dùng thêm nội dung. Nếu nó có 1 hoặc nhiều hàng, tôi muốn nó có hình nền khác để hiển thị nội dung.

Tôi đang sử dụng trình điều khiển kết quả được tìm nạp để điền vào chế độ xem bảng của tôi.

Bất kỳ ý tưởng nào?

Trả lời

22

Điều này thường rất dễ thực hiện khi bạn chỉ cần có UITableView được ủy nhiệm đúng cho ViewController của bạn với các phương thức ủy nhiệm phù hợp có trong tệp .m của bạn.

Sau đó, bạn bất cứ nơi nào có thể nhận được đếm hàng như thế này:

[tablePropertyName numberOfRowsInSection:SECTION_NUMBER]; 

nơi số phần là 0 cho phần đầu tiên, 1 giây vv

+0

Đây phải là câu trả lời đúng vì đó là giải pháp tốt hơn. Thay vì dựa vào số lượng nguồn dữ liệu của bạn, bạn chỉ có thể sử dụng thuộc tính đó để xác định số hàng trong phần đó. Bằng cách đó bất kể điều gì xảy ra với nguồn dữ liệu của bạn (có thể bị hỏng), bạn sẽ thêm hàng vào đúng vị trí. –

1

Tôi khuyên bạn nên xem tài liệu cho NSFetchedResultsController. Nó có mã ví dụ để thực hiện các phương thức của UITableViewDataSource (bao gồm cả các phần có bao nhiêu phần bảng và số hàng trong mỗi phần), cũng như ghi lại thuộc tính fetchedObjects, bạn có thể sử dụng để xem có bao nhiêu kết quả thô bạn đã tìm nạp.

[myFetchedResultsController.fetchedObjects count]; 
5

Tôi đồng ý với câu trả lời của Sixten Otto.

[myFetchedResultsController.fetchedObjects count]; 

Tuy nhiên còn nhiều hơn thế nữa. Dòng trên sẽ trả về số đối tượng bất kể các phần. Tuy nhiên nếu bạn muốn thực hiện điều này trên một bảng với nhiều phần, bạn sẽ phải gọi nó theo cách sau.

[[myFetchedResultsController.sections objectAtIndex:<section>] numberOfObjects]; 

Bạn có thể lấy các đối tượng cho phần như thế này.

[[myFetchedResultsController.sections objectAtIndex:<section>] objects]; 

** Bạn phải thay thế bằng số đại diện cho phần.

Hy vọng điều này sẽ hữu ích.

0

Trong Swift, bạn có thể nhận được hàng UITableView đếm bởi

yourTableViewName.numberOfRows(inSection: Int) 

dụ:

yourTableViewName.numberOfRows(inSection: 0) // returns rows count in section 0 
Các vấn đề liên quan