【问题标题】:iOS create UITabBar who's items can user change dynamicallyiOS创建UITabBar谁的项目可以用户动态更改
【发布时间】: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

标签: ios objective-c uiviewcontroller uitabbar


【解决方案1】:

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

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

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

(强调我的)

【讨论】:

  • 我也不能用那个。我必须使用我的自定义演示视图,它本质上是UICollectionView,因为如果用户想要,他还可以重新排列UICollectionView 中的项目。所以没有 iOS 原生视图起作用。
  • 自定义UIView 是作为UITabBar 唯一的解决方案吗?您对此有何看法?
猜你喜欢
  • 2011-12-16
  • 2021-03-11
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多