使用缩放的UIImageView作为第二个UIImageView的掩码

时间:2013-12-05 21:05:34

标签: ios objective-c uiimageview

我有一个UIImageView,它基本上是一个部分不透明的蓝色椭圆形。我允许用户手动缩放椭圆的高度和宽度。在椭圆形框架设置为所需尺寸后,我想用蒙版椭圆形图像替换蓝色椭圆形。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

我使用这段代码:

#import <QuartzCore/QuartzCore.h>

CALayer *mask = [CALayer layer];
mask.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage];
mask.frame = CGRectMake(0, 0, imgWidth, imgHeight);
maskedImageView.layer.mask = mask;
maskedImageView.layer.masksToBounds = YES;

答案 1 :(得分:0)

顺便说一下,如果蒙版真的只是一个椭圆形,而不是使用图像来进行蒙版,你也可以使用CAShapeLayer

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(x,y,w,h)];
shapeLayer.path = [path CGPath];
self.imageView.layer.mask = shapeLayer;

并且,当您想要移动/调整面具大小时,只需创建一个新的UIBezierPath并更新此path的{​​{1}}属性。