你如何使UIBarButtonItem动画翻转?

时间:2010-05-07 00:07:44

标签: iphone objective-c cocoa-touch uikit

在iPhone上的iPod应用程序中,右上方工具栏中有一个UIBarButtonItem,可以在专辑的歌曲和曲目列表之间翻转。当您选择按钮时,按钮本身会执行翻转动画。

有没有办法做到这一点:

CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];

[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:[self superview] cache:YES];

我是否需要使用initWithCustomView与initWithImage创建一个UIBarButtonItem来实现此目的?

2 个答案:

答案 0 :(得分:8)

UIBarButtonItem不是任何UIView类的子类,因此无法设置动画。这些动画(如Apple的地图或iPod)可能是私有API。

然而,一个粗略的解决方法是使用initWithCustomView创建一个UIBarButtonItem,然后为该视图内的翻转设置动画。但是,这可能非常麻烦 - 您需要为按钮提供自己的边框图形。

希望这有用, 保罗

答案 1 :(得分:2)

我做过类似的事情。我有一个UIBarButtonItem,当文本字段获得焦点时,它会水平翻转。为了达到这个目的,我使用了一个带有自定义UIView的按钮,在其中放置了一个包含完成栏按钮项的透明工具栏。

为了翻转按钮,我使用transitionFromView:toView:options:completion:方法将旧工具栏和新工具栏作为from和to视图。

这有点开销,但您可以坚持苹果默认栏按钮。