Я хотел бы "Расширить" UIView к правой стороне, имея в виду увеличение, это - frame.size.width пикселями нечто, и в то же время уменьшающимися, это - frame.origin.x пикселями нечто, с помощью [UIView beginAnimations] синтаксис. Однако, если я делаю это, когда анимация начинается, представление сразу изменяет размер и затем запускает анимацию для источника.
CGRect currFrame = someView.frame;
currFrame.size.width += 100;
currFrame.origin.x -= 100;
[UIView beginAnimations:@"Anim1" context:nil];
someView.frame = currFrame;
[UIView setAnimationDuration:0.7];
[UIView commitAnimations];
Я также попытался ломать анимацию к 2 частям, но затем я не могу сохранить правильное положение.
Любая справка очень ценится!
Вам может потребоваться перейти к Core Animation и разбить это на две явные анимации:
CABasicAnimation *stetchAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale.x"];
stetchAnimation.toValue = [NSNumber numberWithDouble:(someView.frame.size.width+100)/someView.frame.size.width];
CABasicAnimation *slideAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
slideAnimation.toValue = [NSNumber numberWithDouble:-100];
CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
animationGroup.animations = [NSArray arrayWithObjects:stetchAnimation,slideAnimation,nil];
animationGroup.removedOnCompletion = NO;
animationGroup.fillMode = kCAFillModeForwards;
animationGroup.duration = 0.7;
[someView.layer addAnimation:animationGroup forKey:@"animations"];