Tôi đang cố vẽ hình phản chiếu của hình dạng bằng cách sử dụng Cocoa. Tôi đã áp dụng một NSAffineTransform và vẽ lại hình dạng thành công, nhưng bây giờ tôi không thể tìm ra cách vẽ một mặt nạ alpha trên nó. Tôi đang sử dụng một hoạt động NSCompositeDestinationOut
, nhưng nó đem lại cho tôi một kết quả không mong muốn: alt text http://img687.imageshack.us/img687/2417/capturedcran20100623094.pngCa cao: Sử dụng NSGradient làm mặt nạ để vẽ bên dưới nó
Tôi không chắc chắn chính xác làm thế nào để khắc phục điều này - tôi cần phải làm cho nó nên gradient hoạt động chỉ như là một mặt nạ alpha và không phải là thực sự được hiển thị. Tôi có sử dụng chế độ ghép sai không?
Cảm ơn! Dưới đây là mã gradient nếu cần:
- (void)fadeOutRect:(NSRect)rect {
[NSGraphicsContext saveGraphicsState];
[[NSGraphicsContext currentContext] setCompositingOperation:NSCompositeDestinationOut];
NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:
[[NSColor blackColor] colorWithAlphaComponent:0.5], 0.0,
[[NSColor blackColor] colorWithAlphaComponent:1.0], 0.8, nil];
[gradient drawInRect:NSMakeRect(rect.origin.x, rect.origin.y + rect.size.height - (PILL_HEIGHT * 2),
rect.size.width, PILL_HEIGHT) angle:270];
[NSGraphicsContext restoreGraphicsState];
}
Bạn cần tạo hình ảnh mặt nạ, kết hợp với hình ảnh nguồn của bạn, sau đó vẽ hình ảnh kết quả. http://developer.apple.com/iphone/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_images/dq_images.html – hooleyhoop
Nhưng đối tượng tôi đang che mặt không phải là hình ảnh, nó là một điều khiển được vẽ động. Có cách nào tôi có thể làm cho nó để vẽ một hình ảnh và sử dụng nó? –