Невозможно установить UITabBar, ведущий AccessView в tvOS 13 - PullRequest
2 голосов
/ 30 сентября 2019

В Руководстве по интерфейсу пользователя для tvOS в разделе «Настройка панели вкладок» указано, что:

Кроме того, вы можете отображать логотип или другую информацию, когда панель вкладокотображается при предоставлении дополнительных видов, которые появляются рядом с передним и задним концами панели вкладок.

В документах UITabBar доступно следующее свойство:

trailingAccessoryView

Вид на заднем крае панели вкладок в tvOS. Используйте это свойство для интеграции пользовательского представления в передний край интерфейса панели вкладок. Используйте это представление для отображения собственного логотипа или предоставления доступа к пользовательским аксессуарам в вашем приложении.

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

А также существует конечная версия .

-

ОДНАКО ... trailingAccessoryView определяется только для чтения:

var leadingAccessoryView: UIView { get }

Поэтому его нельзя установить непосредственно в коде.

Я не нашел способа установить его в файле раскадровки, либо непосредственно в UITabBar UITabBarController, в UITabBar, помещенном непосредственно в контроллер представления, либо перетаскивая UIViews через UITabBar.

также попытался установить его, создав пользовательский UITabBar и переопределив это свойство, например, так: class CustomTabBar:

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

Я подтвердил, что установил панель вкладок в раскадровке на свой пользовательский, и этоиспользуя пользовательское, но значение leadingAccessoryView никогда не доступно, и возвращаемое представление никогда не отображается.

-

Как установить leadingAccessoryView наUITabBar в tvOS?

-

Окружающая среда:

Xcode версии 11.0 (11A420a)

Цель развертывания проекта: tvOS 13.0

Симулятор: Apple TV 4K - tvOS 13.0 (17J577))

Этот вопрос также был размещен на форумах разработчиков Apple: https://forums.developer.apple.com/thread/123469

1 Ответ

2 голосов
/ 03 октября 2019

Вы должны добавить свой вид как подпредставление.

Пример:

let imageView = UIImageView(image: UIImage(named: "example-image"))
tabBar.leadingAccessoryView.addSubview(imageView)
...