gpt4 book ai didi

ios - 在 iOS11 上,如何让 UIToolbar 调整所有项目的大小以适应?

转载 作者:可可西里 更新时间:2023-11-01 03:34:50 27 4
gpt4 key购买 nike

在 iOS 10 之前,一个 UIToolbar 在其项目之间具有灵活的空格键按钮项目会自动缩小字体,以便所有文本都显示在屏幕上。以下示例 (iOS 10):

iOS 10 Sample

从 XCode 9 开始,在模拟器上运行 iOS 11 时,我的工具栏显示如下:

iOS 11 Sample

不仅文本的字体大小没有减小,而且最后一个栏按钮项(没有文本,只有图像)也不见了。

试图解决这个问题,我发现自 iOS 11 以来,UIToolbar 现在使用自动布局而不是框架。一些与此问题相关的帖子建议为项目创建约束,为项目指定宽度和/或高度。

但是,我想要实现的是适合工具栏中的所有内容,即使这意味着减小字体大小。我不认为我可以通过编程方式设置固定宽度/高度。

另外,这是在 Storyboard 上使用 IB 构建的。 UIBarButton 类不允许我访问 UILabel(对于文本项目)或 ImageView(对于带有图像的项目)。我已经检查过,customView 在运行时是 nil

我尝试通过代码创建项目,将 customView 设置为 UILabel 并将 adjustsFontSizeToFitWidth 设置为 true 没有运气好的话。我不知道 iOS 11 上灵活的空格键项的用途是什么。

那么,如何模仿我之前的行为呢?适合所有项目并自动调整文本大小?

最佳答案

您需要手动设置 UIBarButtonItems 的大小,例如:

NSUInteger smallFontSize = SMALL_FONT;  // e.g. font size of 12
self.smallFont = [UIFont boldSystemFontOfSize:smallFontSize];
self.smallFontAttributes = @{NSFontAttributeName: self.smallFont};

- (void)shrinkButtonFontSize:(NSArray *)barButtonItems {
for (UIBarButtonItem* button in barButtonItems) {
[button setTitleTextAttributes:self.smallFontAttributes forState:UIControlStateNormal];
[button setTitleTextAttributes:self.smallFontAttributes forState:UIControlStateSelected];
[button setTitleTextAttributes:self.smallFontAttributes forState:UIControlStateDisabled];
}
}

关于ios - 在 iOS11 上,如何让 UIToolbar 调整所有项目的大小以适应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46939009/

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