UIImageview 旋转动画
Posted
技术标签:
【中文标题】UIImageview 旋转动画【英文标题】:UIImageview rotation animation 【发布时间】:2016-08-31 05:32:11 【问题描述】:我想对两个UIImageViews
应用动画。这个想法是让图像一水平翻转 90 度,然后图像二完成旋转。把它想象成一个硬币旋转:头侧(图一)朝前 -> 转 90 度 -> 尾侧(图二)旋转朝前。我可以做动画的前半部分,但我卡在了后半部分。
[UIView animateWithDuration:1.0f animations:^
image1.transform = CGAffineTransformMakeScale(-0.01, 1);
completion: ^(BOOL finished)
// How can I make image 2 to rotate out as if it initially was already rotated by 90 degrees?
];
【问题讨论】:
尝试在第一个完成块内添加另一个 animateWithDuration 块 【参考方案1】:对于翻转动画,有一个名为UIViewAnimationOptionTransitionFlipFromRight
的动画选项,例如与UIView's
动画方法一起使用,如下所示
[UIView transitionWithView:myImageView //with first image
duration:animationDuration
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^
myImageView.image = toImage; //to next image
completion:^(BOOL finished)
//completion actions after flipped
];
还有其他动画选项,例如FromLeft
,
FromTop
,FromBottom
根据您的要求使用任何一种
【讨论】:
【参考方案2】:看看这个关于使用 CATransform3D 在 3D 中翻转 UIView 的问题。
Simple Core Animations 3D transform of UIView
答案:
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -1000.0;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, M_PI * 0.6, 1.0f, 0.0f, 0.0f);
[UIView animateWithDuration:1.0 animations:^
self.someView.layer.anchorPoint = CGPointMake(0.5, 0);
self.someView.layer.transform = rotationAndPerspectiveTransform;
completion:^(BOOL finished)
// code to be executed when flip is completed
];
【讨论】:
以上是关于UIImageview 旋转动画的主要内容,如果未能解决你的问题,请参考以下文章