自定义UITabBarController与滚动

时间:2014-08-13 18:23:49

标签: ios uiscrollview uitabbarcontroller

我正在开发一个需要滚动UITabBarController的应用程序。最常见的5个标签项目,其中第5个是更多..标签,但是没有做到。我找到了一些非常棒的第三方课程,例如https://github.com/Marxon13/M13InfiniteTabBar,它们很棒,并且具有我想要的功能但是,事情并不完美。当我将设备旋转到景观时,事情会变得很糟糕。

基本上,我厌倦了,想要用滚动创建我自己的自定义UITabBarController。我会怎么做呢?我知道我很可能会在UIScrollView中放置一个UITabBar,但是如果没有详细的教程,我就会迷失...

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:1)

我接近这个的方法是避免修改UITabBar,因为它是高度专业化的,并创建一个UIViewController子类,它将为您提供此功能。此视图控制器应具有容器视图(请查看此Apple documentation以获取更多详细信息),该视图将包含每个子视图控制器的内容视图。

对于实际的标签栏本身,您有几个选项,具体取决于您希望它与标准UITabBar的相似之处。

  1. 您可以拥有一个超级基本标签栏,其中包含UIScrollView标准UIButtons,用于更改/加载正确的内容视图控制器。创建标签栏会很简单,只需将按钮添加到某种类型循环内的滚动视图中(您可以将x位置设置为选项卡索引的倍数以使定位更容易)。 UIButton支持您可以使用的选定按钮状态。您可以更改滚动视图的背景。

  2. 你可以有一个花哨的标签栏,其构造基本上与上面类似,但是通过自定义UIButton子类而不是标准UIButton。这将允许您实现更复杂的设计(即具有更多自定义触摸处理。

  3. <强>提示:

    • 使用[myImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]可以在选中时将标签图像设置为标准标签。

    • 在故事板中设计自定义视图控制器的基础知识。以这种方式添加子容器视图和滚动视图非常容易。

    希望这有帮助!