在我的iPhone应用程序中,我在UIToolBar中放置了UIBarButtonSystemItemTrash类型的UIBarBUtton.按下时,我想复制Mail.app的动画:bin打开,UIView折叠并飞进它.
有没有办法通过iPhone SDK访问这个动画?
目前我正在使用定制的动画,但有一些限制; 例如,我无法为bin本身设置动画.你有什么建议吗?代码示例?
干杯,
戴维德
在动画上使用suckEffect类型.另外:spewEffect,genieEffect,unGenieEffect,twist,tubey,swirl,cameraIris,cameraIrisHollowClose,cameraIrisHollowOpen,rippleEffect,charminUltra,zoomyIn和zoomyOut.在模拟器中不起作用.
CATransition *animation = [CATransition animation]; animation.type = @"suckEffect"; animation.duration = 2.0f; animation.timingFunction = UIViewAnimationCurveEaseInOut; view.opacity = 1.0f; [view.layer addAnimation:animation forKey:@"transitionViewAnimation"];
注意:代码段是从较大的代码库中提取的.我希望它有效:)
只是添加一些信息:
您可以使用标准的"suckEffect" +[UIView setAnimationTransition:forView:cache:]
.只需将数字103传递给animationTransition变量即可.这不会避免Apple拒绝您的应用程序:p
iPhoneOS 3.x上不再存在"spewEffect","genieEffect","unGenieEffect"等.剩下的唯一未记录的过渡是"立方体"( - ),"rippleEffect"(110),三个"cameraIris"效果(105,106,107)和"suckEffect"(103).
有关详细信息,请参阅http://www.iphonedevwiki.net/index.php?title=UIViewAnimationState.
此外,要为bin设置动画(使用私有API):http://www.iphonedevwiki.net/index.php?title = UIToolbar #Animating_the_trash_can_icon .
不幸的是,我认为这需要一个完全自定义的动画.UIView折叠可以使用Core Animation进行近似,也许可以通过向UIView底层的CATransform3D添加透视来将UIView扭曲成一个被吸入垃圾桶的梯形.
就垃圾桶而言,您可以使用initWithCustomView:创建一个UIBarButtonItem,这可能允许您插入具有可动画垃圾桶的自定义UIView.它看起来像垃圾桶有两个元素,罐底和盖子,它们独立旋转以打开和关闭罐头.为两者绘制PNG,为它们创建UIImageViews,并使它们成为UIBarButtonItem自定义视图的子视图.对于打开和关闭,将旋转变换应用于它们以设置子视图的动画.