是否有可能做到这样的事情?
当我点击按钮时,我需要以下动画:按钮设置一些alpha过滤器并按箭头指示开始下降,它将在标签上消失。
你能告诉我怎么做吗?非常感谢...
以下是图片网址:http://img534.imageshack.us/img534/8149/screenqx.jpg
答案 0 :(得分:1)
这绝对可能,但你必须克服一些问题。一个是UIBarButtonItem不是UIView。一种方法是遍历UIToolbar或UINavigationBar的子视图。另一种方法是弄清楚按钮的位置。另一种方法是,如果您没有提交AppStore,请使用私有API获取视图。
获得视图后,您可以将其移动到UIToolbar或UINavigationBar的超级视图,或者您可以在其上创建一个视图(并隐藏真实的UIBarButtonItem,因为您完成了该操作)。后者更难,因为模仿默认边界UIBarButtonItem的外观并不容易。
现在你需要以某种方式获得UITabBarItem的中心。您可以使用私有API,也可以遍历子视图。
使用Quartz函数或使用UIBezierPath创建CGPath。起点将是按钮的中心,终点将是UITabBarItem的中心。
创建CAKeyFrameAnimation并附加所述CGPath。
创建一个CABasicAnimation来为不透明度设置动画。
将两者都添加到CAAnimationGroup。
将动画组附加到按钮视图的CALayer。
确保同时设置位置和alpha以防止视图在动画后跳回到原始位置。
连接动画组后,动画应该开始,所以请确保你在按钮的选择器方法中完成所有这些操作。
答案 1 :(得分:0)
你无法真正将它从视图移动到视图,因为你的视图可以剪辑,然后你会得到只有部分图像的帧。可能最好的做法是动态创建一个覆盖整个屏幕的视图,将按钮图像复制到原始视图中的视图,从原始视图中删除按钮,然后将该图像设置为您想要的位置go,然后将按钮添加到最终目的地。