2011-10-17 25 views
6

tại sao thiết lập màu của UITableViewCell làm việc trong willDisplayCell nhưng không ở trong cellForRowAtIndexPath?tại sao thiết lập công việc màu của UITableViewCell trong "willDisplayCell" nhưng không có trong "cellForRowAtIndexPath"?

Ghi chú:

  1. Tôi đang sử dụng mã này để thiết lập màu nền của một tế bào: [cell setBackgroundColor:[UIColor yellowColor]];
  2. công trình khi tôi đặt nó trong phương pháp - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
  3. không làm việc nếu tôi đặt trong trong - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+1

Bạn có thể đăng triển khai của mình 'tableView: willDisplayCell: forRowAtIndexPath:' và 'tableView: cellForRowAtIndexPath:'? – titaniumdecoy

Trả lời

7

Tài liệu cho UITableViewCell nói rằng bạn cần làm điều đó trong willDisplayCell: (trích đoạn từ lớp UITableViewCell refere nce dưới đây). Tôi nghi ngờ rằng bởi vì các ô bảng có một khung nhìn nội dung và các thành phần khác mà dường như được "quản lý" bởi UIKit, rằng nó làm việc riêng của nó với màu nền sau khi nó được đặt trong cellForRowAtIndexPath. Bạn cũng có thể sử dụng thuộc tính 'backgroundView' của ô xem bảng để kiểm soát nền của nó.

tài liệu trích đoạn:

Lưu ý: Nếu bạn muốn thay đổi màu nền của một tế bào (bằng cách thiết lập màu nền của một tế bào thông qua các tài sản kê khai của UIView backgroundColor), bạn phải làm điều đó trong tableView: willDisplayCell: forRowAtIndexPath: phương thức của đại biểu và không có trong tableView: cellForRowAtIndexPath: của nguồn dữ liệu. Thay đổi màu nền của ô trong chế độ xem bảng kiểu nhóm có hiệu lực trong iOS 3.0 khác với các phiên bản trước của hệ điều hành. Nó bây giờ ảnh hưởng đến khu vực bên trong hình chữ nhật tròn thay vì khu vực bên ngoài nó.

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