2012-02-18 30 views
7

Tôi đang sử dụng chế độ xem bảng "Ô tĩnh" được tạo trong tệp bảng phân cảnh của tôi. Tuy nhiên, tôi muốn cập nhật văn bản trên một trong các ô này khi cài đặt được thay đổi.Sửa đổi văn bản trong ô UITableView tĩnh?

Tôi đang đẩy trình điều khiển chế độ xem cập nhật cài đặt. Tôi đang cố gắng sử dụng một cuộc gọi lại để thay đổi văn bản của ô khi nó bật ra khỏi ngăn xếp, nhưng vào thời điểm đó ô đã được tái chế hoặc tái sử dụng, vì vậy đối tượng cũ tắt màn hình và không còn được sử dụng trong chế độ xem bảng nữa.

Có cách nào tôi có thể cập nhật văn bản này và đặt văn bản vĩnh viễn (để khi ô được cuộn khỏi màn hình và quay lại, giá trị mới vẫn xuất hiện)?

+0

Tại sao bạn sẽ cập nhật nội dung cho một tế bào đó là offscreen? Bạn nên biết rằng tế bào có thể được tái chế. Cập nhật chúng cho phù hợp. – Mark

+0

Bạn sẽ không phải sử dụng các ô tĩnh. Bạn sẽ phải thiết lập một đại biểu để tạo ra phiên bản thay đổi của ô khi nó xuất hiện trở lại. – Tobias

Trả lời

19

Giả sử hệ thống phân cấp xem bảng của bạn là dọc theo dòng:

Table View (static cells) 
- Table View Section 
    - Table View Cell 
    - UILabel (with the text property you want to modify) 
  1. Khai báo một IBOutlet UILabel trong mã của bạn, và dây nó lên trong kịch bản của UILabel trong bảng điểm hệ thống phân cấp trên.
  2. Trong phương thức gọi lại, hãy đặt thuộc tính văn bản của UILabel khi bạn thấy phù hợp.
0

Bạn có thể lưu văn bản mà bạn muốn thay đổi như một tài sản và sử dụng nó trong:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = super.tableView(tableView, cellForRowAtIndexPath: indexPath) 

    switch (indexPath.section, indexPath.row) { 
    case (0, 3): 
     cell.textLabel?.text = yourProperty 

    default: break 
    } 

    return cell 
} 
Các vấn đề liên quan