8

次のようなマスクを作成できます。

CALayer *mask = [CALayer layer];
    mask.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage];
    mask.frame = CGRectMake(0, 0, 10, 10);
    self.content.layer.mask = mask;

これにより、コンテンツの左上の 10 ピクセルが正しく表示されます (mask.png は単なる黒い画像であるため)。ただし、マスクをアニメーション化して、残りのコンテンツを表示したいと考えています。

 [UIView animateWithDuration:3.0
                     animations:^{
                         mask.frame = self.content.bounds;
                     }
                     completion:^(BOOL finished){

                     }];

アニメがないのが難点。コンテンツ全体がすぐに表示されます。なぜこれが起こるのでしょうか? また、コンテンツが左上から明らかになるようにマスクをアニメーション化するにはどうすればよいですか?

4

1 に答える 1