2012-11-22 64 views
5

Tôi đang tự động tạo UIImage (vẽ tùy chỉnh của riêng tôi) cho thuộc tính 'UIImageView' trên UITableViewCell.Cách tạo UIImage với nền trong suốt

Khi người dùng chọn ô TableView, nền ô sẽ chuyển sang màu xanh nhưng nền UIImage tùy chỉnh của tôi không - nó vẫn còn màu trắng (vì vậy rõ ràng là tôi có một hình ảnh đang ngồi ở đó). Tôi đã thử các cách tiếp cận vẽ khác nhau

// when I create the cell 
cell.imageView.backgroundColor = [UIColor clearColor]; 
cell.imageView.opaque = NO; 

// 1. when I create the UIImage - clearColor background 
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); 
CGContextFillRect(context, rect); 

// 2. when I create the UIImage - clear background 
CGContextClearRect(context, rect); 

nhưng trong cả hai cách tiếp cận này, hậu cảnh là màu đen. Điều duy nhất mà dường như làm việc là hoàn thành việc tạo ra hình ảnh và sau đó áp dụng tạo ra một hình ảnh thứ 2 với 'CGImageCreateWithMaskingColors' dựa trên hình ảnh đầu tiên - che khuất nền.

Có cách nào tôi có thể "vẽ" nền trong suốt ở nơi đầu tiên không?

+1

Bạn đang sử dụng 'UIGraphicsBeginImageContextWithOptions' để thiết lập bối cảnh hình ảnh? Bạn có truyền 'NO' cho tham số' opaque' không? – rmaddy

Trả lời

9

Đảm bảo rằng bạn đang vượt qua NO đến thông số opaque của chức năng UIGraphicsBeginImageContextWithOptions khi bạn thiết lập ngữ cảnh hình ảnh.

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