gpt4 book ai didi

ios - 如何创建一个标签栏出现在左边而不是底部/顶部?

转载 作者:行者123 更新时间:2023-11-29 12:43:45 26 4
gpt4 key购买 nike

大家好,这是我的难题。我正在尝试创建一个标签栏,该标签栏从上到下锚定在左侧,而不是从左到右锚定在底部。我创建了一个工具栏项目,将栏准确地放置在我想要的位置,但我希望选项卡栏相同,具有相同的功能,当然除了细线到位,栏项目从上到下排列。

这是我的工具栏代码,我知道标签栏的代码也类似,我只是遇到了麻烦。

UIToolbar *toolBarLeft = [[UIToolbar alloc] init];
toolBarLeft.frame = CGRectMake(0, 20, 50, 568);
toolBarLeft.layer.borderColor = [UIColor lightGrayColor].CGColor;
toolBarLeft.layer.borderWidth = 0.5f;
[self.view addSubview:toolBarLeft];

感谢大家的帮助!

最佳答案

你需要做的事情的要点是:

  1. 子类 UITabBarController
  2. 确保默认 tabBar 属性的 hidden 属性设置为 YES(因此它是隐藏的)并保持这种状态。
  3. 将您想要用作标签栏的任何自定义 View 添加到该子类的 view 属性(就像您将 View 作为 subview 添加到 UIViewController 一样)。

您在第 3 步中添加的 subview 应该响应触摸并具有委托(delegate)属性。 UITabBarController 子类应该委托(delegate) View ,以便它可以响应被选择的不同选项卡(以及许多其他事情)。

只要导航符合逻辑且易于理解,您的应用就不会仅仅因为修改标签栏的工作方式而被拒绝。


附录:

对于第 3 步,如果您希望选项卡垂直堆叠,我实际上推荐一个 UITableView 子类,其中从 tableView:heightForRowAtIndexPath: 返回的值是这样计算的:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {
CGFloat totalHeight = tableView.frame.size.height;
CGFloat totalTabs = (CGFloat)[tableView numberOfRowsInSection:0];
return totalHeight/totalTabs;
}

并且滚动被禁用。

因为现在当 tableView:didSelectRowAtIndexPath: 被触发时,我们可以告诉标签栏 Controller :tabBarController.selectedIndex = indexPath.row;

关于ios - 如何创建一个标签栏出现在左边而不是底部/顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24194396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com