2013-02-25 16 views
6

tôi biết rằng tôi không thể tái sử dụng các tế bào bằng cách không gọi phương pháp này:Làm thế nào tôi có thể không tái sử dụng tế bào NHƯNG sử dụng một Prototype di động nhận diện

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SomeID"] 

Dựa trên mô tả có sẵn here.

Nhưng nếu tôi đang sử dụng ô Prototype thì sao?

Bởi vì nếu tôi không chỉ định Mã định danh của ô mẫu thử nghiệm của tôi, thì bảng phân cảnh của tôi chỉ hiển thị các ô trống.

+0

Bạn có thể giải thích lý do bạn không muốn sử dụng lại các ô không? – Caleb

+2

Cảm ơn phản ứng, tôi không muốn sử dụng lại các ô vì tôi đã tạo một ô mẫu với Trường văn bản và khi tôi chạy ứng dụng của mình và tôi viết nội dung nào đó vào trường văn bản, tôi đã sao chép văn bản trong một ô khác. Lưu ý: Xem bảng của tôi không có nhiều hơn 10 ô, vì vậy tôi không nghĩ rằng hiệu suất sẽ là vấn đề nếu tôi không sử dụng lại các ô – user2034350

+0

ý của bạn là gì? –

Trả lời

0

Bạn chỉ cần đặt lại tất cả nội dung bạn đang xử lý trong phương thức ngay sau khi bạn kéo ô từ bộ nhớ cache.

Và sau đó tiếp tục với thiết lập của bạn bán cho chỉ số cụ thể. ví dụ:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SomeID"]; 
if(cell) 
{ 
    cell.textLable.text = nil; 
    cell.accessoryItem = nil; 
    ... 
} 

if(haveSomeText){ 
    cell.textLable.text = [allMyTexts objectForIndex:index]; 
} 
if(needSetButton){ 
    cell.accessoryItem = [[UIButton alloc] init ...]]; 
} 
... 
Các vấn đề liên quan