大佬教程收集整理的这篇文章主要介绍了ios – 摇动UIView ……但是使用UIKit Dynamics,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(例如,“吸引儿童用户注意控件”,“连接速度慢”,“用户输入错误输入”等等.)
使用UIKit Dynamics可以做到这一点吗?
所以你必须……
>看看,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) ] ]; anim.autoreverses = YES; anim.repeatCount = 1.0f; anim.duration = 0.1f; [CAtransaction setCompletionBlock:^{}]; [self.layer addAnimation:anim forKey:nil]; [CAtransaction commit]; }
>首先,定义一个管理动画师:
@property (nonatomic,strong) UIDynamicAnimator *animator;
并实例化它:
self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
>其次,向该动画师添加附件行为以便在当前位置查看.这将使它在推动完成后回弹.您必须使用阻尼和频率值.
UIAttachmentBehavior *attachment = [[UIAttachmentBehavior alloc] initWithItem:viewToShake attachedToAnchor:viewToShake.center]; attachment.damping = 0.5; attachment.frequency = 5.0; [self.animator addBehavior:attachment];
这些值并不完全正确,但也许它是您实验的起点.
>应用推送行为(UIPushBehaviorModeInstantaneous)来扰乱它.然后,附着行为将导致其弹回.
UIPushBehavior *push = [[UIPushBehavior alloc] initWithItems:@[viewToShake] mode:UIPushBehaviorModeInstantaneous]; push.pushDirection = CGVectorMake(100,0); [self.animator addBehavior:push];
就个人而言,我并不是对这个特殊的动画感到疯狂(阻尼的曲线对我来说感觉不太合适).我倾向于使用基于块的动画向一个方向移动(使用UIViewAnimationOptionCurveEaSEOut),完成时启动另一个以相反方向移动它(使用UIViewAnimationOptionCurveEaseInOut),然后在完成后,使用animateWithDuration的usingSpringWithDamping再现移动它回到原来的位置.恕我直言,这产生了一种曲线,感觉更像是“摇晃如果错误”的体验.
以上是大佬教程为你收集整理的ios – 摇动UIView ……但是使用UIKit Dynamics全部内容,希望文章能够帮你解决ios – 摇动UIView ……但是使用UIKit Dynamics所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。