我想知道,如何删除UIView
中的自定义矩形(例如IB
中的UIImageView
)以显示其他UIImageView
位于下方。
我没有设法在论坛中使用一些回复...
答案 0 :(得分:9)
这将清除图像中的矩形:
- (UIImage *)clearRect:(CGRect)rect inImage:(UIImage *)image {
if (UIGraphicsBeginImageContextWithOptions != NULL)
UIGraphicsBeginImageContextWithOptions([image size], NO, 0.0);
else
UIGraphicsBeginImageContext([image size]);
CGContextRef context = UIGraphicsGetCurrentContext();
[image drawInRect:CGRectMake(0.0, 0.0, [image size].width, [image size].height)];
CGContextClearRect(context, rect);
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
在将图像指定给图像视图之前,只需加载图像并清除图像:
UIImage *image = [UIImage imageNamed:@"Image.png"];
UIImage *maskedImage = [self clearRect:CGRectMake(10.0, 10.0, 50.0, 50.0) inImage:image];
[imageView setImage:maskedImage];
答案 1 :(得分:1)
可能不是最好的解决方案,但你可以采取另一种方式,分别在矩形周围取4个部分,然后在没有内部矩形的情况下将它们组合起来。只要你有直接裁剪就可以重复这个。
答案 2 :(得分:1)
你无法清除UIImageView本身,因为它只是绘制了UIImage。所以你在UIImage中删除了rect。创建位图上下文,将图像绘制到其中。使用CGContextClearRect擦除要“透视”的部分。从位图上下文创建新的新图像时。