Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在选项卡栏中相等间隔选项卡栏项_Ios_Uitabbarcontroller_Uitabbaritem - Fatal编程技术网

Ios 如何在选项卡栏中相等间隔选项卡栏项

Ios 如何在选项卡栏中相等间隔选项卡栏项,ios,uitabbarcontroller,uitabbaritem,Ios,Uitabbarcontroller,Uitabbaritem,我有3个选项卡栏项目,我希望它们在选项卡栏中显示如下: | | | 1 2 3 | | | 我在InterfaceBuilder中看到此属性: 我试过所有的案例,但都不起作用,它显示了如下内容: | | | 1 2 3 | | | 以下是最简单的解决方案: 如果您有一个子选项卡BarController,

我有3个选项卡栏项目,我希望它们在选项卡栏中显示如下:

|                  |

|    1    2    3   |

|                  |
我在InterfaceBuilder中看到此属性:

我试过所有的案例,但都不起作用,它显示了如下内容:

|                  |

|      1  2  3     |

|                  |

以下是最简单的解决方案:

如果您有一个子选项卡BarController,请在
viewDidLayoutSubviews
中添加此代码,它对我有效

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    self.tabBar.itemSpacing = UIScreen.main.bounds.width / 6
}

这是一个通用的解决方案,没有任何硬编码值

UITabBarController
viewDidLoad()
中,设置

tabBar.itemPositioning=.fill


这是Objective-C的代码

-(void)viewDidLoad
{
    [super viewDidLoad];

    [self.tabBar setItemPositioning:UITabBarItemPositioningFill];
}
也可以在选项卡栏上的情节提要中设置值


接受的答案需要设置tabBar.itemPositioning才能工作。如果上述答案无效,请尝试将其设置为.centered。此后,您应该能够以编程方式设置项目间距

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    self.tabBar.itemPositioning = .centered
    self.tabBar.itemSpacing = UIScreen.main.bounds.width / 6
}

在条形图项目之间使用灵活的空格,如flexiblespace-item1-flexiblespace-item2-flexiblespace-item3-flexiblespace在另一篇文章中回答了这个问题。请参见此处的解决方案。对我有用。可以创建新类,也可以在界面生成器中选择此选项