我有一个UITabBar
必须具有紧凑的horizontalSizeClass 的traitCollection。因为在常规的HorizontalSizeClass 上UITabBar
,并排呈现 TabBarIcon 和 Title。
我做了子类UITabBar
化并覆盖了 traitCollection getter 给我修改后的 traitCollection。
override var traitCollection: UITraitCollection{
let current = super.traitCollection
let compact = UITraitCollection(horizontalSizeClass: .compact)
return UITraitCollection(traitsFrom: [current, compact])
}
这可以完成工作,但是,我开始低于警告
MyTabBar 类覆盖不支持的 -traitCollection getter。如果您尝试覆盖特征,则必须使用适当的 API。
检查 Apple 文档后,我确实找到了一个 API,overrideTraitCollection(forChild:) 但是包含我的 UITabBar 的 viewController 需要有常规的 HorizontalSizeClass。
我还发现了一个类似的问题,但它没有回答我关于覆盖 traitCollection 的问题UIView
。
我不想覆盖 a 的 traitCollectionUIViewController
而只是覆盖UIView
.
覆盖 traitCollection 的正确方法是UIView
什么?