【发布时间】:2014-06-22 21:46:54
【问题描述】:
在很多情况下,您需要“摇动”一个 UIView。
(例如,“将孩子的注意力吸引到控件上”、“连接速度慢”、“用户输入错误”等等。)
是否可以使用 UIKit Dynamics 做到这一点?
所以你必须..
取景,比如 0,0
添加弹簧概念
轻推一下,说“向左”
它应该在弹簧上前后摆动,最终再次稳定到 0,0
这可能吗?我在 Apple 演示中找不到示例。干杯
请注意,正如 Niels 在下文中敏锐地解释的那样,在某些情况下,弹簧不一定是您想要的“物理感觉”:在其他情况下,它可能是完美的。据我所知,iOS 自己的应用程序(例如消息等)中的所有物理现在都使用 UIKit Dynamics,所以对我来说,处理“UIView 在弹簧上弹跳”是值得的。
为了清楚起见,您当然可以做一些“类似”的事情,只需使用动画即可。示例...
但现在,它根本没有与 iOS 其他部分相同的“物理感觉”。
-(void)userInputErrorShake
{
[CATransaction begin];
CAKeyframeAnimation * anim =
[CAKeyframeAnimation animationWithKeyPath:@"transform"];
anim.values = @[
[NSValue valueWithCATransform3D:
CATransform3DMakeTranslation(-4.0f, 0.0f, 0.0f) ],
[NSValue valueWithCATransform3D:
CATransform3DMakeTranslation(4.0f, 0.0f, 0.0f) ]
];
anim.autoreverses = YES;
anim.repeatCount = 1.0f;
anim.duration = 0.1f;
[CATransaction setCompletionBlock:^{}];
[self.layer addAnimation:anim forKey:nil];
[CATransaction commit];
}
【问题讨论】:
-
animateWithDuration:delay:usingSpringWithDamping不是 UIKit 动态。 -
您的尝试有什么问题?我觉得不错。
-
用我自己的一个观点尝试一下,我觉得它看起来不错,但也许这是一个品味问题。如果您认为它需要初始动画,为什么不只是初始动画呢?为什么说“不雅”?还是另一种口味?
标签: ios ios7 game-physics user-experience uikit-dynamics