动画UIView和面具

时间:2014-11-19 14:22:19

标签: ios objective-c iphone uiview uiimageview

我有一个基本上是痣的UIImageView。我希望这个鼹鼠从一个洞中弹出来。所以实际上我的想法是,我会在洞下方创建一个痣,并在其上面设置一个蒙版,然后使图像视图生动,使其看起来像是从洞中弹出。所以按照这个想法,我写下了这段代码:

    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    CGRect maskRect = _moleIcon.frame;
    CGPathRef path = CGPathCreateWithRect(maskRect, NULL);
    maskLayer.path = path;
    CGPathRelease(path);
    _moleIcon.layer.mask = maskLayer;
    [UIView animateWithDuration:2.0 animations:^(void){
        _moleIcon.transform=CGAffineTransformMakeTranslation(0, 50);
    }];

但问题是,看起来掩码本身正在与实际的UIImageView一起移动。任何帮助将受到高度赞赏。

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试使用2个UIViews,只需将maskView带到前面:

[superview bringSubviewToFront:maskView];

并为蒙版视图设置背景颜色和alpha属性,

maskView.backgroundColor = [UIColor blackColor];
maskView.alpha = 0.8;

现在你可以直接移动2个视图。

但更好的是将2个视图添加到其他视图 - 容器,并旋转此视图。