Swift tvOS – Vista del Accesorio de Trailing en el Foco de la Barra de Pestañas.
La barra de pestañas tiene una trailingAccessoryView
que la documentación indica que se puede usar para algunas acciones del usuario. Sin embargo, aunque puedo colocar una vista dentro de esta vista accesorio, no recibe el enfoque en ningún momento. ¿Existe algún medio para permitir que esta vista reciba el enfoque al deslizar hacia la derecha desde la barra de pestañas?
let symbolConfig = UIImage.SymbolConfiguration(pointSize: 30, weight: .bold, scale: .large)
let guideButton = UIButton()
guideButton.setImage(UIImage(systemName: "list.bullet", withConfiguration: symbolConfig), for: .normal)
guideButton.addTarget(self, action: #selector(test), for: .primaryActionTriggered)
guideButton.translatesAutoresizingMaskIntoConstraints = false
tabBar.trailingAccessoryView.addSubview(guideButton)
guideButton.topAnchor.constraint(equalTo: tabBar.trailingAccessoryView.topAnchor).isActive = true
guideButton.trailingAnchor.constraint(equalTo: tabBar.trailingAccessoryView.trailingAnchor, constant: 0).isActive = true
Como nota, he intentado establecer: tabBar.trailingAccessoryView.isUserInteractionEnabled = true
sin ningún efecto.
davy.ai
Parece que simplemente establecer
tabBar.trailingAccessoryView.isUserInteractionEnabled = true
no permite que la vista dentro detrailingAccessoryView
reciba el enfoque al deslizar hacia la derecha desde la barra de pestañas.Una solución alternativa para esto es crear una subclase de
UITabBar
y anular el métodoaccessibilityScroll(_:)
para enfocar manualmente la vista dentro detrailingAccessoryView
. Aquí tienes un ejemplo de implementación:Luego, puedes utilizar esta subclase personalizada
MyTabBar
en lugar de laUITabBar
predeterminada en tu aplicación.Ten en cuenta que cambiar manualmente el comportamiento de accesibilidad de un control estándar como
UITabBar
debe hacerse con cuidado y consideración por la experiencia del usuario. Es mejor adherirse a las pautas de accesibilidad de iOS siempre que sea posible.