Я пытаюсь анимировать представление в позиции в представлении, использующем UIDynamics. Я не понимаю, как взаимодействует анимация Core Animation и UIDynamics, но что-то происходит, я не понимаю.Взаимодействие между UIDynamicAnimator и [UIView animateWithDuration:]
У меня есть тестовый проект с контроллером вида с одним видом, ярлыком, который начинается в нижней части окна, и я пытаюсь оживить движение к верхней середине.
// Create the label
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(160, 400, 100, 50)];
label.text = @"hello";
[self.view addSubview:label];
// Set up the animator and collision
self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
UICollisionBehavior *collisionBehaviour = [[UICollisionBehavior alloc] initWithItems:@[ label ]];
[collisionBehaviour addBoundaryWithIdentifier:@"wall"
fromPoint:CGPointMake(0, 50)
toPoint:CGPointMake(320, 50)];
[self.animator addBehavior:collisionBehaviour];
// Animate the label
[UIView animateWithDuration:1.0
animations:^{
label.frame = CGRectMake(160, 100, 320, 100);
}];
Это просто пограничная линия в верхней части представления, нигде вблизи либо в начале или в конечном положении моей анимации. Я не понимаю, почему это должно повлиять на анимацию кнопки в ее исходное положение, но это так.
Если я прокомментирую addBehaviour: вызов, то анимация работает нормально. Но когда я добавляю поведение, анимация переходит в неправильное расположение. Я не понимаю, почему.