2

“标签栏自定义”下的 tvOS 人机界面指南中,它指出:

此外,当标签栏可见时,您可以通过提供出现在标签栏前端和后端附近的附件视图来显示徽标或其他信息。

UITabBar文档中,以下属性可用:

trailingAccessoryView

tvOS 上标签栏后缘的视图。使用此属性在标签栏界面的前沿集成自定义视图。使用此视图显示自定义徽标或授予对应用中自定义附件的访问权限。

https://developer.apple.com/documentation/uikit/uitabbar/3213944-leadingaccessoryview

还有一个尾随版本

-

但是...trailingAccessoryView被定义为只读:

var leadingAccessoryView: UIView { get }

所以不能直接在代码中设置。

我发现无法将它设置在 Storyboard 文件中,或者直接在 UITabBarController UITabBar 上、在直接放置在视图控制器上的 UITabBar 上,或者通过将 UIViews 拖到 UITabBar 上。

我还尝试通过创建自定义 UITabBar 并覆盖该属性来设置它,如下所示: class CustomTabBar:

UITabBar {       
    override var leadingAccessoryView: UIView {  
        return UIImageView(image: UIImage(named: "example-image"))  
    }  
}  

我已经验证我已将情节提要中的选项卡栏设置为自定义选项卡,并且它正在使用自定义选项卡,但leadingAccessoryView从未访问过该值,并且从未显示它返回的视图。

-

如何在 tvOS中设置leadingAccessoryViewa ?UITabBar

-

环境:

Xcode 版本 11.0 (11A420a)

项目部署目标:tvOS 13.0

模拟器:Apple TV 4K - tvOS 13.0 (17J577)

这个问题也已经发布在苹果开发者论坛上: https ://forums.developer.apple.com/thread/123469

4

1 回答 1

3

您必须将视图添加为子视图。

例子:

let imageView = UIImageView(image: UIImage(named: "example-image"))
tabBar.leadingAccessoryView.addSubview(imageView)
于 2019-10-03T08:22:08.107 回答