次のようなマスクを作成できます。
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){
}];
アニメがないのが難点。コンテンツ全体がすぐに表示されます。なぜこれが起こるのでしょうか? また、コンテンツが左上から明らかになるようにマスクをアニメーション化するにはどうすればよいですか?