posso creare una maschera simile a questo:Animare la maschera per un UIView
CALayer *mask = [CALayer layer];
mask.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage];
mask.frame = CGRectMake(0, 0, 10, 10);
self.content.layer.mask = mask;
E questo sarà correttamente rivelare l'alto a sinistra di 10 pixel di mio contenuto (perché mask.png è solo un'immagine nera). Tuttavia voglio animare la maschera per rivelare il resto del contenuto:
[UIView animateWithDuration:3.0
animations:^{
mask.frame = self.content.bounds;
}
completion:^(BOOL finished){
}];
Il problema è che non c'è nessuna animazione. L'intero contenuto viene visualizzato immediatamente. Perché ciò accade e come posso animare la maschera in modo che il contenuto venga rivelato in alto a sinistra?
Questo funziona, parzialmente. Posso vedere l'animazione ora. Tuttavia si ferma a metà strada, invece di rivelare l'intera vista del contenuto. Sai perché potrebbe essere? – soleil
Non sono sicuro di essere onesto; controlla che il valore all'interno dei limiti del contenuto sia corretto. Ti darò una risposta anche per essere un po 'più robusto. – WDUK
In realtà era a causa del punto di ancoraggio (predefinito per 0,5, 0,5 per qualche motivo). Questo lo risolve: mask.anchorPoint = CGPointMake (0, 0); – soleil