【发布时间】:2013-03-09 05:43:09
【问题描述】:
我想给 UIImageVIew 添加一个圆形遮罩。这是用于添加掩码的函数..
- (void) addMaskToBounds:(CGRect) maskBounds
{
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGPathRef maskPath = CGPathCreateWithEllipseInRect(maskBounds, NULL);
maskLayer.bounds = maskBounds;
[maskLayer setPath:maskPath];
[maskLayer setFillColor:[[UIColor blackColor] CGColor]];
maskLayer.position = CGPointMake(maskBounds.size.width/2, maskBounds.size.height/2);
[self.imageView.layer setMask:maskLayer];
}
我能够添加蒙版,但由于我更改了图像框架和中心,因此出现了问题。图像会根据用户操作放大和缩小。因此,我必须在小和放大时添加两次蒙版。因此,由于正在为帧更改设置动画,因此在为图像设置动画时会失真或移位。我该如何克服这个问题?
我想最好用一个示例项目来解释它。这里我在 GitHub 上创建了一个 Demo 项目https://github.com/akshaynhegde/MaskImage,只需运行它就可以看到我的问题并告诉我如何解决问题。
【问题讨论】:
-
之前有人问过这个问题:stackoverflow.com/questions/12564336/…
标签: ios uiimageview calayer uiviewanimation cashapelayer