CATransaction не анимация - PullRequest
       9

CATransaction не анимация

2 голосов
/ 30 апреля 2009

Я создал новое приложение на основе представления в XCode.

В ViewController единственный измененный код выглядит следующим образом:

- (void)viewDidLoad {
[super viewDidLoad];

UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
newView.backgroundColor = [UIColor redColor];
[self.view addSubview:newView];


[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:0.5f] forKey:kCATransactionAnimationDuration];

newView.layer.frame = CGRectMake(20,20,220,220);

[CATransaction commit];
}

Он должен создать красный квадрат, который оживляет на полсекунды, как только приложение загружается. Проблема в том, что он не оживляет. Я не могу понять, почему. Я создал этот простой проект для изоляции всех переменных, но он все еще не работает.

Может ли кто-нибудь помочь или указать мне правильное направление некоторых материалов для чтения Core-Animation. Я уже просмотрел все вещи Apple.

Ответы [ 2 ]

5 голосов
/ 30 апреля 2009

Ваш код анимировался бы так, как ожидалось, если бы вы устанавливали свойства на CALayer (они анимируются по умолчанию). Чтобы анимировать UIViews, вы должны изменить их свойства в блоке, как показано ниже:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f];

// Change properties here

[UIView commitAnimations];

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

0 голосов
/ 30 апреля 2009

Может кто-нибудь помочь или направить меня в правильном направлении к некоторым материалам для чтения Core-Animation. Я уже просмотрел все вещи Apple.

См .: Базовая анимация для Mac OS X и iPhone: создание привлекательных динамических пользовательских интерфейсов для превосходного прохождения базовой анимации на видах и слоях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...