iOS创建UITabBar谁的项目可以用户动态更改

Posted

技术标签:

【中文标题】iOS创建UITabBar谁的项目可以用户动态更改【英文标题】:iOS create UITabBar who's items can user change dynamically 【发布时间】:2016-01-26 23:04:52 【问题描述】:

我想用三个项目创建UITabBar

每个项目都会导致不同的UIViewController

UITabBar 必须是可编辑的,以便用户可以在使用应用程序时更改项目。

例子:

UITabBar我默认有itemOne、itemTwo、itemThree。

当用户点击 itemThree 时,他会看到一个选择视图,在该视图中他可以选择 itemFour、itemFive、itemSix... 来替换 UITabBar 中的一个项目。

因此,如果他决定用 itemTwo 替换 itemSix,他必须点击 itemTwo,然后在选择视图中点击 itemSix,然后项目必须替换。

所以现在当用户在UITabBar 中点击 itemSix 时,应用程序必须将他带到与 itemSix 连接的UIViewController

我的想法是创建 UIViewControllerUIView 作为自定义 UITabBarContainerView 将用作不同 UIViewControllers 的占位符。

请您评论一下我的想法并告诉我您的建议,我应该如何实现这种功能。

【问题讨论】:

如果您有五个以上的选项卡,UITabBar 会生成一个“更多”项,让您可以执行此操作。唯一的区别是始终显示四个选项卡,而不是 3 个。 我不能使用“更多”。我必须一直拥有三个项目和一个特殊的选择视图来处理选择。 您可以使用UICollectionView的子类自定义Tab Bar 【参考方案1】:

UITabBar 上的 -beginCustomizingItems:-endCustomizingAnimated: 方法 (docs) 可以允许这样的事情。

- (void)beginCustomizingItems:(NSArray<UITabBarItem *> *)items

items 参数应该包含所有可以添加到标签栏的项目。 不在items 中的可见项目被固定在适当的位置——用户不能删除或替换它们

(强调我的)

【讨论】:

我也不能用那个。我必须使用我的自定义演示视图,它本质上是UICollectionView,因为如果用户想要,他还可以重新排列UICollectionView 中的项目。所以没有 ios 原生视图起作用。 自定义UIView 是作为UITabBar 唯一的解决方案吗?您对此有何看法?

以上是关于iOS创建UITabBar谁的项目可以用户动态更改的主要内容,如果未能解决你的问题,请参考以下文章

UIAlertView 更改 UITabbar 项目选定的颜色

UITabBar 项目位置问题 Xamarin

更改 UITabBar 高度

UITabBar 在 iOS7 上更改一个 UITabBarItem 的背景颜色

iOS UITabBar 项目位置

UITabBar 未在 ios 7 中显示所选项目图像