在 UITabBarController 中制作自定义 UITabBar 的正确方法

Posted

技术标签:

【中文标题】在 UITabBarController 中制作自定义 UITabBar 的正确方法【英文标题】:The right way to make a custom UITabBar inside UITabBarController 【发布时间】:2012-05-23 12:04:03 【问题描述】:

我正在尝试使用 UITabBarController 创建一个应用程序,以便使用 Cocoa 自己的内存和视图控制器管理在不同的视图控制器之间切换。

但是,我确实需要制作一个非常自定义的 UITabBar,经过多次谷歌搜索后我发现这是不可能的。原来的 UITabBar 有几件事是不可能的:

更改 TabBar 的位置和大小, 向工具栏添加自定义(非选项卡)元素,例如搜索/下拉菜单

是否有任何“合法”方法可以完全改变 TabBar 的设计/子视图,但同时使用 UITabBarController 并仍然获得 Apple 批准的应用程序?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

关于更改大小,您可以扩展 UITabBar 并覆盖函数 sizeThatFits。 很抱歉没有回答其他问题。

- (CGSize)sizeThatFits:(CGSize)size 
    CGSize auxSize = size;
    auxSize.height = 54; // Put here the new height you want
    return auxSize;

我一发现就会告诉你。

【讨论】:

【参考方案2】:

标签栏中不能自定义太多,但有一些很好的例子:-

    Custom Tabbar by iDevRecipes Custom TabBar by brianCollins

它可能不是你所需要的,但会给你指明方向。

【讨论】:

感谢您的回答。在问这个问题之前,我研究了这两种解决方案。两者似乎都没有什么严重的问题,最近也没有错误修复(最后一次更改是在 6 个多月前)。我确实明白总是有可能使用外部库或自己编写解决方案,但我正在寻找干净的解决方案,如果有的话:)

以上是关于在 UITabBarController 中制作自定义 UITabBar 的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中制作简单的 UITabBarController?

UITabBarController 自定义

以编程方式制作 UITabBarController 和 UINavigationController Swift 4

防止自定义 UITabBarController 更改选项卡

在 UITabBarController 中覆盖 UITabBar

单击 UITabBarController 时的自定义操作