Я пытаюсь оживить положение некоторых подпредставлений в прокрутке. Я хочу создать определенный эффект при их скольжении. Я просто использовал неявную анимацию, изменяя рамку в UIView, но когда они скользят, это выглядит слишком роботизированным. Итак, я надеялся создать эффект отскока, когда они скользят внутрь, заходят слишком далеко, а затем возвращаются в предполагаемое положение, в значительной степени так, как выглядит прокрутка, когда она достигает конца, просто как бы наоборот.
В любом случае, я не могу заставить его анимировать изменение происхождения кадра. Я не уверен, что мне не хватает, потому что, если я отключу то, что анимируется (сделайте первый // * на / *), он отлично сработает, изменив непрозрачность.
- (void)slideInStories;
{
float scrollViewContentWidth = 0;
for (StoryViewController *storyController in storyControllers) {
NSMutableArray *animationPoints = [NSMutableArray array];
CGRect viewFrame = storyController.view.frame;
//*
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"frame"];
[animationPoints addObject:[NSValue valueWithCGRect:viewFrame]];
viewFrame.origin.x = scrollViewContentWidth - 10;
[animationPoints addObject:[NSValue valueWithCGRect:viewFrame]];
viewFrame.origin.x = scrollViewContentWidth;
[animationPoints addObject:[NSValue valueWithCGRect:viewFrame]];
/*/
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"];
[animationPoints addObject:[NSNumber numberWithFloat:0.75]];
[animationPoints addObject:[NSNumber numberWithFloat:0.0]];
[animationPoints addObject:[NSNumber numberWithFloat:0.75]];
//*/
[animation setValues:animationPoints];
[animation setDuration:4.0];
viewFrame.origin.x = scrollViewContentWidth;
scrollViewContentWidth += viewFrame.size.width;
[storyController.view.layer setFrame:viewFrame];
[storyController.view.layer setOpacity:1.0];
[storyController.view.layer addAnimation:animation forKey:nil];
}
[scrollView setContentSize:CGSizeMake(scrollViewContentWidth, 187.0f)];
}
center
? - person jscs   schedule 18.05.2011