3

我有一个自定义的 UITabBarController,我希望它在按下 TabBarItem 时滑出旧视图并滑入新视图。我查看了 UITabBarControllerDelegate,但它只是让我决定视图是否显示而不是如何显示(通过 shouldSelectViewController)。有没有办法做到这一点?

(我的目标是拥有一个在所有 4 个视图上看起来几乎相同的星空背景。它应该看起来像项目发生了变化并且背景只是滚动了一点)

4

1 回答 1

2

子类化UITabBarController并使其成为自己的代表。现在您可以拦截方法,例如tabBarController:shouldSelectViewController:并操作您添加到选项卡栏的任何自定义视图。如果您将星空添加到选项卡栏视图,然后使用具有半透明视图的选项卡控制器,则公共背景可以显示出来。

你甚至可以直接拦截标签栏控制器方法,setSelectedIndex:以获得更多控制权,让你淡出。但是,如果您这样做,请确保您super在某个时候调用该方法的版本,以便标签栏保持功能。

于 2010-02-27T07:49:53.980 回答