2012-01-01 20 views
6

Tôi đang cố thay đổi màu nền của giao diện xuất hiện khi bạn vuốt hàng UITableViewCell, màu nền phía sau nút 'Xóa'.Vuốt để Xóa trong UITableViewCell có nền trắng, cần rõ ràng

Tôi đã thử thay đổi ô.chỉnh sửaAccessoryView nhưng điều đó không làm gì cả.

UIView* myBackgroundView = [[UIView alloc] initWithFrame:CGRectZero]; 
    myBackgroundView.backgroundColor = [UIColor clearColor]; 
    cell.editingAccessoryView = myBackgroundView; 

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

+0

Bạn đã bao giờ tìm được giải pháp cho điều này chưa? Tôi đang gặp vấn đề tương tự :) –

Trả lời

7

Bạn sắp hoàn tất. Lớp UITableViewCell có thuộc tính backgroundView, theo mặc định là nil. Chỉ cần tạo UIView mới như bạn đã thực hiện trong câu hỏi của mình, sau đó gán điều đó cho thuộc tính backgroundView của ô của bạn.

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
cell.backgroundView.backgroundColor = [UIColor clearColor]; 
1

Tôi nghĩ điều đó phụ thuộc vào cách bạn thêm nội dung vào ô của mình.

Khi tôi thêm nội dung vào ô trực tiếp bằng [cell addSubView] hoặc [cell.contentView addSubView] tôi đã gặp sự cố tương tự.

workaround của tôi để này là:

Create a view 
Add all your content(labels, images etc;) to this view 
Finally then add the view to your cell using [cell addSubView:tmpView] 

Và bạn không cần phải can thiệp vào tài sản backgroundView nữa. Tôi đã thử điều này và hoạt động hoàn hảo!

7

Tôi trả lời câu hỏi này vì tôi mất một lúc để tìm câu trả lời và đây là mục nhập đầu tiên xuất hiện trong tìm kiếm. Bằng cách sử dụng phương thức willDisplayCell, bạn có thể truy cập màu nền của ô. Lưu ý rằng [UIColor clearColor]; sẽ trả về màu trắng để điều chỉnh mã của bạn cho phù hợp.

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    cell.backgroundColor = [UIColor blackColor]; 

} 
0

Trong khi những câu trả lời này đúng, tôi cảm thấy dễ dàng hơn khi đặt màu nền của ô trong trình tạo giao diện. Theo đó, tôi có nghĩa là thuộc tính màu nền thực tế của ô chứ không phải là chế độ xem nội dung. Không có lý do để làm nó tự động nếu nó luôn luôn sẽ là màu sắc mà xem nội dung là anyway.

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