【问题标题】:UIToolbar doesn't show UIBarButtonItem with custom view (only below iOS 11)UIToolbar 不显示带有自定义视图的 UIBarButtonItem(仅在 iOS 11 以下)
【发布时间】:2018-03-29 12:38:34
【问题描述】:

我正在测试一个简单的UIToolbar,其中有两个UIBarButtonItem 作为项目,一个使用initWithCustomView: 方法构建,另一个使用initWithTitle:style:target:action: 方法构建。

可以在工具栏上查看第二个按钮,但第一个按钮不见了。

此问题仅在 iOS 9 和 iOS 10 上出现。在 iOS 11 上不会出现。

有人知道吗?

UIToolbar *toolbar = [[UIToolbar alloc] init];
[toolbar setTranslatesAutoresizingMaskIntoConstraints:NO];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"one" forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:audioOnIcon] forState:UIControlStateNormal];

[toolbar setItems:[NSArray arrayWithObjects:
                   [[UIBarButtonItem alloc] initWithCustomView:button],
                   [[UIBarButtonItem alloc] initWithTitle:@"title" style:UIBarButtonItemStylePlain target:self action:nil],
                   nil]];

[toolbar setBackgroundImage:[UIImage new] forToolbarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[toolbar setShadowImage:[UIImage new] forToolbarPosition:UIBarPositionAny];
toolbar.accessibilityIdentifier = toolbarIdentifier;

[self.view insertSubview:toolbar atIndex:[self getSubviewIndex:toolbar.accessibilityIdentifier]];

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[subview]-0-|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:@{ @"subview": toolbar}]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[subview]-padding-|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:@{ @"padding": @(2 * PADDING) } views:@{ @"subview": toolbar }]];

【问题讨论】:

  • 我们可以看看你的代码吗?
  • 抱歉,忘记密码了。你现在可以看到它
  • 通过设置[button sizeToFit]解决了;
  • 那么请将“sizeToFit”解决方案标记为正确答案。我可以确认这有效(在 iOS 10 上,同样的问题)。

标签: ios9 ios10 uibarbuttonitem uitoolbar custom-view


【解决方案1】:

在将其添加到工具栏之前,您需要在 UIButton 上调用 sizeToFit 方法。

类似这样的:
[button sizeToFit]; // (Objective-C)

button.sizeToFit() // (Swift)

虽然回答这个问题为时已晚,但希望这对您或其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2016-08-11
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多