/ / Неблокиращо UIView анимирано мащабиране - ios, object-c, анимация, блок, calayer

Не блокиране на UIView анимирано мащабиране - ios, objective-c, анимация, блок, calayer

Бих искал да анимирам мащабиране на UIView и цялото му съдържание по начин, който не блокира. В момента правя това ...

    [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];

Въпреки това е така блокиране, Предпочитам да използвам нещо като ...

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

... но animateWithDuration не работи с CALayer / CGAffineTransform трансформация. Как мога да постигна същата анимация, без да блокирам нищо?

Отговори:

5 за отговор № 1

опитайте да използвате:

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

Просто добавяйки полезна бележка към този чудесен отговор, почти винаги искате да включите растеризацията, така че изглежда гладка

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