Khi tôi thêm UIView
vào Bộ điều khiển chế độ xem theo chương trình, tôi không thể thay đổi màu nền thành bất kỳ màu nào khác, màu này luôn luôn đen.Màu nền UIView luôn màu đen
- (void)drawRect:(CGRect)rect
{
// Drawing code
self.backgroundColor = [UIColor blueColor];
UIBezierPath *path = [[UIBezierPath alloc] init];
[path moveToPoint:CGPointMake(100, 33)];
[path addLineToPoint:CGPointMake(200, 33)];
path.lineWidth = 5;
[[UIColor redColor] setStroke];
[path stroke];
}
Khi tôi nhận xét drawrect:
ra và thêm self.backgroundColor = [UIColor blueColor];
để initializer những thay đổi màu sắc:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColor blueColor]
}
return self;
}
Tại sao điều này và làm những gì tôi cần phải thay đổi? Thực ra tôi muốn nền trong suốt.
Trả lời hoạt động hoàn hảo khi tôi muốn có màu nền. Nhưng tôi không thể sử dụng [[UIColor clearColor] setFill]; Nó vẫn có màu đen. – Pete
@Pete, tôi thấy kết quả tương tự như bạn làm khi cố gắng thiết lập màu sắc rõ ràng trong drawRect. Để khắc phục điều đó, xóa cuộc gọi UIRectFill đó và thiết lập màu nền để xóa trong phương thức init của khung nhìn (phương thức init nào là phù hợp với cách bạn tạo khung nhìn). – rdelmar
@Pete Vui lòng kiểm tra câu hỏi này http://stackoverflow.com/questions/2125543/setting-a-cgcontext-transparent-background.Có lẽ nó sẽ giúp – Avt