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
。
我的想法是创建 UIViewController
与 UIView
作为自定义 UITabBar
和 ContainerView
将用作不同 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 项目选定的颜色