使用核心动画(Core Animation)来淡出一个UIBarButtonItem是否可行?

5

我很好奇,是否有可能将核心动画与UIBarButtonItem相结合,以实现“淡出”效果? 我有一个tableView,用两个不同的数据源表示。 一旦触发特定的数据源,我想淡出当前的UIToolBar选项并淡入新的选项。

感谢您指引我正确的方向。

2个回答

7
如果你真的在使用UIToolbar(注意小写“b”),而不是UINavigationBar,那么有一种非常简单的方法可以更改按钮并自动淡出过渡,而不需要转到核心动画。
如果你正在使用Interface Builder,你需要在代码中引用工具栏。创建一个IBOutlet属性,并在IB中将工具栏链接到它。
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;

这将允许您将UIToolbar作为self.toolbar引用。然后,创建您的新按钮并将它们添加到NSArray中,并将其传递给-[UIToolbar setItems:animated:]方法,如下所示:

UIBarButtonItem *newItem = [[[UIBarButtonItem alloc] 
                                initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
                                target:self 
                                action:@selector(handleTap:)] autorelease];
NSArray *newButtons = [NSArray arrayWithObjects:newItem, nil];
[self.toolbar setItems:newButtons animated:YES];

2
在谷歌搜索时发现了这篇文章 - 值得注意的是:有一个 [self.navigationItem setLeftBarButtonItem:myBarButton animated:YES] 方法,我用它来实现这个目的。谢谢! - taber

2
我不相信有一种方法可以控制UIBarButtonItem的alpha值,但UIToolbar类已经有一个支持您所尝试做的事情的方法:-setItems:animated:。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接