按下视图设置HidesBottomBarWhenPushed时隐藏中心选项卡栏按钮

ch3*_*0ke 7 objective-c uitabbar ios

我正在关注如何从这里创建一个带有像Path,Instagram等中心按钮的标签栏的示例:http://idevrecipes.com/2010/12/16/raised-center-tab-bar-button/

我遇到的问题是当一个视图被推入堆栈时,HidesBottomBarWhenPushed设置隐藏标签栏,仍然会显示中心按钮.

在评论中,其他几个人遇到了这个问题,但没有可行的解决方案.(我在评论中尝试了所有建议的解决方案)

我提出了一个hacky解决方案 - 在一个不相关的单例类中存储对中心按钮的引用,然后让被推入的视图在加载时隐藏按钮,并在它消失时取消隐藏 - 但这只是感觉不对,它看起来很有趣,因为你可以在推视图动画开始之前看到按钮消失.

有人有这个工作吗?

Mat*_*uif 6

我有同样的问题.我通过覆盖以下viewDidLayoutSubviews方法(按钮是我的中心按钮)编辑了BaseViewController.m(我的UITabBarController子类),如下所示.

- (void)viewDidLayoutSubviews{
    button.center = self.tabBar.center;
}
Run Code Online (Sandbox Code Playgroud)

现在您的按钮跟随标签栏.

  • 记住也要包含`button.layer.zPosition = 1;`,以防止按钮被tabbar覆盖 (2认同)