mogę utworzyć maskę tak:Animowanie maski dla 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;
I to będzie poprawnie odsłonić górny lewy 10 pikseli mojego treści (bo mask.png jest tylko czarny obraz). Jednak chcę animowanie maskę, aby odsłonić resztę zawartości:
[UIView animateWithDuration:3.0
animations:^{
mask.frame = self.content.bounds;
}
completion:^(BOOL finished){
}];
Problem polega na tym, że nie ma animacji. Cała zawartość zostanie natychmiast wyświetlona. Dlaczego tak się dzieje i jak mogę animować maskę tak, aby zawartość została odsłonięta od lewej górnej strony?
To działa, częściowo. Teraz widzę animację. Jednak zatrzymuje się mniej więcej w połowie, zamiast ujawniać cały widok zawartości. Czy wiesz, dlaczego tak się dzieje? – soleil
Nie jestem pewien, aby być szczerym; dwukrotnie sprawdź, czy wartość w granicach treści jest prawidłowa. Wypełnię odpowiedź, aby być nieco bardziej odporną. – WDUK
Właściwie było to z powodu punktu kontrolnego (domyślnie 0.5, 0.5 z jakiegoś powodu). To naprawia: mask.anchorPoint = CGPointMake (0, 0); – soleil