创建蒙版效果

时间:2014-05-28 09:25:50

标签: ios objective-c mask

我有一个非常简单的游戏我建立了,游戏有主要的中心游戏屏幕ViewController。 并且顶视图显示了你需要通过的下一个对手。

enter image description here

如你所见,白色区域是游戏区域,而蓝色顶视图,你可以看到下一个对手是怎样的。

我想要做的就是当你通过一个对手时,最后一个会向下动画,但不会在它后面的白色区域。 我尝试通过代码创建此效果,这里是:

-(void)animationPlayerDawnwaords{

    self.backgroundColor = COLOR_BLUE;

    [_playerView setCenter:CGPointMake(self.center.x, self.center.y)];
    [_playerView setHidden:NO];

    [UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{

        [_playerView setCenter:CGPointMake(self.center.x, self.center.y * 4.0 )];

    } completion:^(BOOL finished) {
        //
    }];
}

但结果是:

enter image description here

enter image description here

我想做这样的事情:

enter image description here

我知道最后一张图片不是来自同一个项目,但是如果是的话我不会问这个大声笑(;

任何实现这一目标的方式都将非常感谢,谢谢

修改

主要ViewController的白色区域和蓝色区域是它的子视图,我的意思是,它位于顶部。 因此,不可能选择使白色区域成为最顶视图。 希望我能清楚地解释我的自我..谢谢

3 个答案:

答案 0 :(得分:0)

确保gameView位于_playerView之上。您可以通过确保gameView位于_playerView下方来确定故事板中的层次结构(对不起,如果它不清楚,我制作了截图但我需要10个声明来发布图像......)或者使用Akhilrajtr'答案。

答案 1 :(得分:0)

如果_playerView是蓝色topView的子视图,您可以设置topView.clipsToBounds = YES;

答案 2 :(得分:0)

两种方法:

<强>首先: 一个班轮

[self.view bringSubviewToFront:self.yourWhiteView];
// this line of code will place your white view on top of everything else

<强>第二 如果你想要更多的控制

#import "QuartzCore/QuartzCore.h"

int whiteViewZ = self.yourWhiteView.layer.zPosition;

// set your playerview z position to be behind your white view
self.playerView.layer.zPosition = whiteViewZ - 1;