/ / Ridimensionamento animato di UIView non bloccante: ios, obiettivo-c, animazione, blocco, calayer

Ridimensionamento animato di UIView non bloccante: ios, ogg-c, animazione, blocco, calayer

Mi piacerebbe animare il ridimensionamento di un UIView e di tutto il suo contenuto in modo non bloccante. Attualmente lo faccio ...

    [UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.1];
[UIView setAnimationDelegate:self];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
CGAffineTransform transform = CGAffineTransformMakeScale(1.1,1.1);
self.view.transform = transform;
[UIView commitAnimations];

Comunque è blocco. Preferirei usare qualcosa come ...

[UIView animateWithDuration:0.2
animations:^{
CGAffineTransform transform = CGAffineTransformMakeScale(1.1,1.1);
self.view.transform = transform;
}];

... ma animateWithDuration non funziona con la trasformazione CALayer / CGAffineTransform.Come posso ottenere la stessa animazione senza bloccare nulla?

risposte:

5 per risposta № 1

prova ad usare:

[UIView animateWithDuration:0.2
animations:^{
CGAffineTransform transform =
CGAffineTransformScale(CGAffineTransformIdentity, 2.0, 2.0);
self.view.transform = transform;
}];

Semplicemente aggiungendo una nota utile a questa grande risposta, quasi sempre si desidera attivare la rasterizzazione, quindi sembra liscia

self.view.layer.shouldRasterize = YES;
[UIView animateWithDuration:0.2
animations:^{
CGAffineTransform transform =
CGAffineTransformScale(CGAffineTransformIdentity, 0.5, 0.5);
self.view.transform = transform;
}];