如何隐藏 UIToolbar 上的 UIBarbuttonItem 以获得小尺寸 class?

How can I hide UIBarbuttonItem on UIToolbar for small size class?

很遗憾 UIToolbar 不支持 UIBarbuttonItem 元素的大小 classes。如何在 UIToolbar 上隐藏 UIBarbuttonItem 以获得小尺寸 class?

首先,添加:

- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
    [super traitCollectionDidChange:previousTraitCollection];
    if ((self.traitCollection.verticalSizeClass != previousTraitCollection.verticalSizeClass)
        || (self.traitCollection.horizontalSizeClass != previousTraitCollection.horizontalSizeClass)) {
        [self setupToolbar:self.traitCollection.horizontalSizeClass];
    }
}

然后重新创建工具栏项:

    if (horizontalSizeClass == UIUserInterfaceSizeClassCompact) {
        mainItems = [NSArray arrayWithObjects:..., nil];
    } else {
        mainItems = [NSArray arrayWithObjects:..., nil];
    }
    [mainToolbar setItems:mainItems animated:NO];