gpt4 book ai didi

iphone - UIToolbar - 边距?有谁知道 UIToolbar 的左右边距吗?

转载 作者:行者123 更新时间:2023-12-03 19:06:06 30 4
gpt4 key购买 nike

我正在创建一个 UIToolbar,上面只放置了一个 UILabel。标签内容是动态的并且可以更改,我想将其集中在 UIToolbar 上。

有人知道 UIToolbar 左侧和右侧的确切边距大小吗?

我正在创建一个[[UIBarButtonItem alloc] initWithCustomView:myLabelContainer],并且我试图确保 myLabelContainer 占据整个工具栏空间,减去强制边距。

现在我猜测每边的边距约为 12 px,因此框架宽度为 296 的 UIView 应该填充整个 UIToolbar?

此信息可以在任何地方获得吗?

最佳答案

我认为此信息不可用。但通过一些测试应该很容易获得。

如果您需要的只是整个工具栏上的 UILabel,我建议将其添加到 UIToolbar 中,它是 UIView 子类。您不需要案例中的所有 UIBarButtonItem 功能......只需我认为的背景。

然后设置 UILabel.frame (使用您想要的边距)+ addSubview: + a UITextAlignmentCenter 应该可以完成这项工作!另外也许还有一个 autoresizingMask 和 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight 如果您有管理设备方向...

编辑 1:

由于对该提案存在一些疑问,我做了一个快速测试:

UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(10, 0, 300, 44)] autorelease];
label.text = @"Hello world";
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.shadowColor = [UIColor blackColor];
label.backgroundColor = RGBACOLOR(255, 0, 0, .3f);
[self.toolbar addSubview:label];

这是结果:

enter image description here

编辑 2:

既然我已经启动了 Xcode 并编写了一些代码,就很容易弄清楚您的主要问题了。稍微改变一下之前的代码:

UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
... same
[self.toolbar setItems:
[NSArray arrayWithObject:
[[[UIBarButtonItem alloc] initWithCustomView:label] autorelease]]];

带来:

toolbar2

正如您所猜测的,左边距为 12px,但自定义 View 看起来不会调整大小以适应,因此,在这种情况下没有右边距......除非您相应地调整 View 大小。

编辑 3:

除非你的 UILabel 需要背景,否则我可能会这样做(这就是 UIBarButtonSystemItemFlexibleSpace 的用途...):

UILabel *label = [[[UILabel alloc] init] autorelease];
label.text = @"Hello world";
... same
[label sizeToFit];
[self.toolbar setItems:
[NSArray arrayWithObjects:
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil action:nil] autorelease],
[[[UIBarButtonItem alloc] initWithCustomView:label] autorelease],
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil action:nil] autorelease],
nil]];

结果:

enter image description here

编辑 4:

另一方面,在对 UIToolbar 进行更多研究之后,12px 是在按钮之前添加的默认空间。我刚刚发现了一个有趣的现象,间隔符正在使用负值!。 IE。如果你想要两个按钮之间有 2px 的空间,只需添加 -10px UIBarButtonSystemItemFixedSpace...方便!

关于iphone - UIToolbar - 边距?有谁知道 UIToolbar 的左右边距吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708058/

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