Đúng, bạn chắc chắn có thể với Quartz.
Có hướng dẫn ở đây cho bạn thấy cách thực hiện UIImage và che giấu một phần của nó.
http://iosdevelopertips.com/cocoa/how-to-mask-an-image.html
Đây là mã từ trang đó (trong trường hợp nó đi xuống vì một lý do)
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
return [UIImage imageWithCGImage:masked];
}
Nguồn
2009-10-26 21:06:57
Cảm ơn, hãy thử ngay bây giờ. – rein
Tốt nhất @Sixten, tôi nghĩ rằng điều này nghe có vẻ giống như những gì anh ta muốn +1 –
Hoạt động hoàn hảo (trừ một số nhức đầu với CGImages được lật trong khi vẽ). Cảm ơn. – rein