Cách tạo NSIndexPath cho TableView


243

Tôi cần xóa hàng 1 của bảng trong hàm tôi đã xác định. Để sử dụng, deleteRowAtIndexPathbạn phải sử dụng IndexPathmột phần và hàng được xác định. Làm thế nào tôi có thể tạo một đường dẫn như thế này?

Một mảng với int {1} là thành viên duy nhất của nó sẽ gặp sự cố; thông báo NSLog nói rằng phần này cũng cần được xác định.

* Chỉnh sửa -> Mã liên quan đến xóa ô:

    NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
    NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil];
//  [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade];
//  [self.tableView endUpdates];

Câu trả lời:


646

Sử dụng [NSIndexPath indexPathForRow:inSection:]để nhanh chóng tạo một đường dẫn chỉ mục.

Chỉnh sửa: Trong Swift 3:

let indexPath = IndexPath(row: rowIndex, section: sectionIndex)

Swift 5

IndexPath(row: 0, section: 0)

118

indexPathForRow là một phương pháp lớp học!

Mã nên đọc:

NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0] ;

18

Câu trả lời bắt buộc trong Swift: NSIndexPath(forRow:row, inSection: section)

Bạn sẽ nhận thấy rằng NSIndexPath.indexPathForRow(row, inSection: section)không có sẵn trong swift và bạn phải sử dụng phương thức đầu tiên để xây dựng indexPath.


17

Đối với Swift 3, bây giờ: IndexPath(row: rowIndex, section: sectionIndex)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.