在我的游戏中,我在主 UIView 上托管了一个由较小的 UIView 组成的网格。盒子会随机变成不同的颜色,此时用户可以触摸它们来得分。当他们触摸框时,我想显示某种动画,理想情况下类似于 XCode native 提供的模式水平翻转转场。如何在不实际转换到另一个 UIView 的情况下制作此动画?
最佳答案
您可以简单地尝试像这样设置 View 变换的动画(垂直翻转):
[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut
animations:^(void) {
view.transform = CGAffineTransformMakeScale(1, -1);
}
completion:nil];
或者为了更好地控制,您可以查看 iOS-Flip-Transform .
编辑:
对于影子,试试这个:
view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOpacity = 0.75;
view.layer.shadowRadius = 15.0;
view.layer.shadowOffset = (CGSize){0.0,20.0};
[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut
animations:^(void) {
view.transform = CGAffineTransformMakeScale(1, -1);
}
completion:^(BOOL b) {
view.layer.shadowColor = [UIColor clearColor].CGColor;
view.layer.shadowOpacity = 0.0;
view.layer.shadowRadius = 0.0;
view.layer.shadowOffset = (CGSize){0.0, 0.0};
}];
我希望这对你有用。您可以根据需要更改阴影设置。不要忘记导入 QuartzCore/QuartzCore.h。
关于iphone - UIView翻转动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426233/